Главная страница » Материалы за Апрель 2018 года
Опрос
Какие статьи добавлять?

Поиск информации за 4 месяц 2018 года

PHP: блокировка доступа к файлу. Контроль доступа во время выполнения

Автор: administrator Дата: 30-04-2018, 21:19 Категория: Статьи и уроки / PHP статьи

Блокировка файлов с ожиданием

При осуществлении файловых операций нужно учитывать возможность их параллельного выполнения. С одним и тем же файлом могут взаимодействовать различные процессы. Одни выполняют чтение, а другие записывают данные. Некоторые задачи, решаемые в PHP, требуют явного контроля над таким поведением. Например, если в настоящий момент происходит запись в файл, нужно подождать его завершения перед началом чтения. Таким образом, пользователь будет получать актуальную информацию о содержимом.
PHP имеет встроенный механизм блокировки доступа к файлам. Он реализует консультативную модель (англ. advisory locking). Это означает, что все программы, работающие с файлом, должны реализовывать один и тот же способ проверки и использования блокировок. Иначе они не будут работать.
Блокировки доступа бывают двух типов: монопольная — другие процессы не могут записывать и читать данные пока не будет снята блокировка, совместная — все процессы могут читать, но не записывать.
Для блокировки файла используйте функцию flock(). В первом параметре она принимает дескриптор файла, а во втором указывается тип блокировки. Тип можно задать с помощью встроенных констант LOCK_SH(совместная) или LOCK_EX (монопольная). Функция возвращает true в случае захвата файла или false, если произошла ошибка. flock() также отвечает и за снятие блокировки. Для этого передайте ей дескриптор файла, а во втором параметре укажите константу LOCK_UN.
Просмотров: 3 435 Комментариев: 1
  • Не нравится
  • 0
  • Нравится

PHP: загрузка файлов. Обработка и сохранение присланных данных.

Автор: administrator Дата: 30-04-2018, 21:12 Категория: Статьи и уроки / PHP статьи

Принципы загрузки файлов

Загрузка файла на сервер может быть выполнена как с помощью веб-формы, расположенной на странице сайта, так и прямым программным запросом. Для PHP-интерпретатора способ передачи файла не имеет значения. Спецификация HTTP-протокола приводит эти операции к единообразному виду.
Любой загружаемый файл будет помещен в специальную директорию для временного хранения, а связанная с ним информация добавлена в суперглобальный массив $_FILES. Если не переместить файл в другое место, после завершения скрипта произойдет его бесследное удаление. Директория временного хранения определяется настройкой upload_tmp_dir конфигурационного файла php.ini...
Просмотров: 1 228 Комментариев: 0
  • Не нравится
  • 0
  • Нравится

PHP: права доступа к файлам. Установить их или получить значение.

Автор: administrator Дата: 29-04-2018, 19:11 Категория: Статьи и уроки / PHP статьи

Введение в права доступа

Операционные системы имеют различные политики контроля доступа к файлам. PHP не может влиять на них прямым образом. Однако интерпретатор обрабатывает системные сообщения. Например, при выполнении какой-либо операции с файлом, на которую у вас нет прав, встроенные функции перехватывают ошибки и возвращают false.
Для построения WEB-сервисов в основном используются операционные системы Linux и Windows. Их политики контроля доступа совершенно не совместимы. Тем не менее, список файловых операций остается неизменным: создание, чтение, изменение, удаление и запуск исполняемых программ. PHP имеет ряд встроенных функций, самостоятельно определяющих тип операционной системы и вычисляющих доступность прав.
Заметка!
В зависимости от логики приложения может возникнуть потребность проверки прав доступа к файлу до осуществления операции. Это позволит явным образом контролировать поведение программы, а не дожидаться ошибок.

Просмотров: 1 327 Комментариев: 0
  • Не нравится
  • 0
  • Нравится

Запись данных в файл. Функции PHP, отвечающие за эту операцию.

Автор: administrator Дата: 29-04-2018, 18:43 Категория: Статьи и уроки / PHP статьи

Запись данных целиком

Довольно часто требуется записать информацию в файл за один раз, без открытия дескриптора и построчной обработки данных. В PHP специально для решения этой задачи есть функция file_put_contents(). Её первый параметр принимает путь до файла, а второй — строку, предназначенную для записи.
Если файл на момент вызова не существует, он будет создан. Однако для осуществления этой операции нужны права, позволяющие создавать файлы в указанной директории. Обратите внимание на то, что данная функция перед осуществлением записи затирает всё содержимое файла.
Перезаписывание файла можно отменить за счет третьего необязательного параметра. Он принимает три вида флагов, которые могут быть объединены с помощью побитового оператора «или», записываемого как вертикальная черта «|»...
Просмотров: 1 332 Комментариев: 0
  • Не нравится
  • 0
  • Нравится

PHP: Создание файла. Использование временных файлов

Автор: administrator Дата: 29-04-2018, 18:01 Категория: Статьи и уроки / PHP статьи

Простое создание файла

Нужно отметить, что в PHP есть несколько способов создания файлов. Каждый из них имеет свои особенности и используется для решения различных задач.
Самым простым способом является использование функции touch(). Она применяется для установки времени последнего доступа к файлу. Если файл не существует, touch() создаст его. Принцип работы очень прост. Функция принимает три параметра: имя файла, время касания и время доступа в формате timestamp. Параметры времени являются необязательными...
Просмотров: 1 123 Комментариев: 0
  • Не нравится
  • 0
  • Нравится

PHP: файловые указатели. Выборочное извлечение информации.

Автор: administrator Дата: 28-04-2018, 19:07 Категория: Статьи и уроки / PHP статьи

Роль файловых указателей

При использовании функций чтения и записи, встроенных в PHP, нужно учитывать одну особенность. Файловый дескриптор, полученный вызовом fopen(), хранит в себе информацию о текущем местоположении указателя, также называемого курсором.
Указатель - это целочисленное значение, соответствующее порядковому номеру байта, от которого будет произведена следующая операция. Например, если вы создали файл и записали в него некоторое количество данных, то следующее добавление информации произойдет с места остановки предыдущей операции.
В PHP существует ряд функций, позволяющих управлять файловыми указателями. Это дает возможность выполнять чтение или запись, начиная с конкретного места. Они просты в понимании, но на практике используются редко. В большинстве случаев логика приложения не требует явного управления курсорами.
Важно!
Функции изменения положения курсора, рассматриваемые ниже, не будут иметь никакого эффекта, если файл был открыт в режиме доступа «a» или «a+». Операции записи в таком случае будут вестись только в конец файла.

Просмотров: 1 200 Комментариев: 0
  • Не нравится
  • 0
  • Нравится