Написание файла в PHP с помощью cron - PullRequest
2 голосов
/ 17 июля 2009

Я пытаюсь записать файл в подпапку каталога, в котором мой cron-скрипт использует содержимое file_ put_. Тем не менее, я получаю предупреждение «не удалось открыть поток: нет такого файла или каталога». У меня есть эта структура каталогов:

httpdocs / скрипты / FileDirectory

Сценарий cron находится в папке scripts. Я вызываю это командой cron:

php httpdocs/scripts/cron_writeFile.php

В файле cron_writeFile я впервые попробовал:

file_put_contents('fileDirectory/', $fileName, $fileContents);

, который работает при загрузке страницы в браузере, но не при выполнении cron.

Когда мне требуется_концепция файла в cron, я должен указать «абсолютный» путь к нему:

require_once('httpdocs/scripts/requiredFile.php');

Итак, я попробовал это:

file_put_contents('httpdocs/scripts/fileDirectory/', $fileName, $fileContents);

Не повезло. Я уверен, что он попадает в нужную папку, потому что предупреждение:

"Предупреждение: содержимое файла file_ (httpdocs / scripts / fileDirectory / 4.txt): не удалось открыть поток: нет такого файла или каталога в /var/www/vhosts/myDomain.com/httpdocs/scripts/cron_writeFile.php по линии 93 "

Оба каталога имеют разрешения на запись.

Я использую работающий VPS (я знаю, что это отстой, и мне нужно обновить, но у меня нет полномочий)
Parallels Plesk Panel версия 9.2.1 с PHP 5.0.4

Файл не существует, и мне нужен новый файл при каждом запуске скрипта.
Я не уверен, есть ли определенный способ определить путь к файлу или что-то еще, что мне не хватает.

Спасибо за вашу помощь!

1 Ответ

11 голосов
/ 17 июля 2009

Что если вы используете dirname(__FILE__) ( см. ), чтобы получить абсолютный путь к вашей директории "fileDirectory"?

Что-то вроде этого в вашем скрипте, я полагаю, если ваш fileDirectory является дочерним по отношению к каталогу, в котором находится ваш файл:

file_put_contents(dirname(__FILE__) . '/fileDirectory/' . $fileName, $fileContents);

Таким образом, вы не зависите от относительного пути, который может быть неправильным, если ваш скрипт не запускается из «правильного» каталога.

...