Intereting Posts
Каково регулярное выражение для проверки международного номера телефона в php или zend? Как установить постоянную ссылку в своем блоге в соответствии с датой и названием публикации? Как установить DOCUMENT_ROOT и корень сайта в моей локальной установке PHP? PHP-функция imagettftext () и unicode Эффективно использовать Google App Engine для отправки большого количества писем с помощью PHP? Когда мне следует возвращать true / false AJAX, и когда я должен эхо «true» / «false», Функция для получения IP-адреса пользователя Как получить значения всех отмеченных флажков с помощью jQuery Перевод Symfony2 с использованием trans_default_domain PHP Динамически получить полный Абсолютный URL-адрес для определенного файла, который будет включен в другие файлы Лучшая практика для генерации случайного токена для забыли пароль PHP Curl не работает над AppEngine PHP добавляет 1 месяц к настоящему времени Разбор строки в логическое значение в PHP Как отправить значение кнопки в PHP?

Блокировка php при одновременном вызове одного и того же файла

У меня есть действительно странная проблема.

Я написал файловый менеджер в PHP с возможностью загрузки файлов – это прекрасно работает. весь скрипт построен как один большой файл.

теперь, при загрузке большого файла, я не могу использовать сценарий одновременно, скажем, для просмотра содержимого папки. он ничего не делает, кроме как продолжать загрузку. как только загрузка закончена, все работает снова.

есть ли что-то, что мешает PHP разбора одного и того же файла одновременно? потому что другие скрипты работают как шарм, независимо от того, загружаюсь я или нет.

помощь или ссылки на документацию высоко оценены 🙂

Solutions Collecting From Web of "Блокировка php при одновременном вызове одного и того же файла"

Вы используете сеансы?

Если да, то это, вероятно, проблема. Обработчик сеанса по умолчанию использует файлы, которые необходимо заблокировать при выполнении кода с поддержкой сеанса. Практически это означает, что каждый пользователь последовательно выполняет PHP-файлы. Чтобы решить эту проблему, вы должны использовать специальный обработчик сеанса, который использует БД. Прочтите это .

Редактирование: я хочу указать, что писать пользовательский обработчик сеанса без блокировки может быть сложным и ввести различные тонкие ошибки. Прочитайте больше документов об этом, если вам нужно это сделать!

Редактирование 2: Иногда использование session_write_close () для закрытия сеанса, когда больше не требуется, достаточно (см. Комментарии).

Daremon является правильным, но вам не нужно использовать другой обработчик сеанса. Если вы вызове session_write_close() перед началом отправки файла, блокировка файла сеанса будет выпущена, а остальные сценарии должны быть продолжены.