File put contents не работает

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

это выглядит как:

реальная проблема заключается в том, что "file_put_contents" работал долгое время, но теперь этого не происходит. теперь это странно: он удаляет исходный файл с сервера.. также, если я меняю его на что-то вроде:

file_put_contents ($ new_ftp_file, $ file_content);

из того, что я знаю, он должен создать новый файл и поместить в него контент, но он вообще не создает его.

служба хостинга, которую я использую, имеет изменение версии PHP несколько дней назад. Я не помню, что было в предыдущей версии, но текущий: 5.2.17

некоторые изменения

Я нашел этот фрагмент: http://www.php.net/manual/en/function.file-put-contents.php#86864, точечный, как "file_put_contents", но с ****, fwrite и fclose (я отправляю свой пример, потому что результатов.). его функции возвращаются "ложно", если он не может "fopen" файла или "байты", если он преуспел. Я получил "ложь":/, что означает, что он даже не мог:

хотя "file_get_contents" с тем же адресом файла работает.

чтение работает (но если вы берете $ filename и используете его самостоятельно на FTP-клиенте, он работает):

"open base_dir" для моего хостинга (который делает действие) установлен в false, но целевой хост (который имеет целевой файл) установлен как истинный.

У меня возникла идея сохранить новый контент в новом файле, поэтому я попробовал что-то вроде:

проблема в том, что никто из них действительно не работает. Я зарегистрировался на FTP-адрес, используя те же учетные данные, что и мой скрипт, и я не нашел новый файл. Он не был создан вообще. (как я вам напоминаю, "$ new_ftp_file" — это путь к файлу, который не существует, поэтому режим "w" на "fopen" должен его создать).

Читайте также:  Как настроить кмп плеер для просмотра

У меня есть скрипт, который копирует вывод ветки / электронной почты в файл tmp, который нам нужно сохранить для юридических целей. Во-первых, это было сделано с помощью fopen, fwrite, close. Это работало годами, внезапно перестало работать и файлы.

Затем мы перешли на использование file_put_contents. Однако это вызывает ту же ситуацию. Быстрое большинство файлов создаются, однако 15-25% файлов не хранятся локально, пока есть контент.

$ bytes ничего не выводит при сбое file_put_contents. Журналы ошибок ничего не показывают. В настоящее время в папке находится 324 000 файлов, мы уменьшаем их до 10.000 макс.

Что не так, или кто-то может указать мне на другой подход отладки? Смотрите код ниже.

Дополнительная информация, папка, в которой хранятся файлы, имеет правильные разрешения. Сценарий выполнен cronjob.

Решение

поставить этот код — это поможет вам определить, что случилось:

Затем вы можете начать с проверки того, существует ли этот файл или нет.

Проверьте этот код:

@file_get_contents работает нормально, и изменение местоположения заголовка в загруженном файле также работает, но либо увеличение hit_count, либо @file_put_contents не работает, потому что число с файлом не увеличивается на 1. Я установил разрешение файла на 777 , но когда я пытаюсь установить разрешение на директорию 777, я также получаю внутреннюю ошибку сервера 500, в которой говорится: «Сервер столкнулся с неожиданным условием, которое не позволило ему выполнить запрос».

Вы не можете написать удаленный файл через http . (Если бы вы могли это сделать, каждый из них мог бы также изменить этот файл.)

Вам нужно использовать локальный путь.

попробуйте изменить свойства каталога

и / или записывать следующим образом, если вы размещаете на linux