|
|
|
| Создаю XML файл при помощи php следующей командой:
...
// Откроем файл (если он есть) или создадим его
$fp = fopen ("yandex_auto.xml", "a+");
...
fclose($fp);
|
Данный файл создаётся нормально, но его необходимо регулярно обновлять.
При повторном выполнении данного скрипта обновление не происходит!!!
Как сделать, чтобы файл обновлялся? | |
|
|
|
|
|
|
|
для: sega_z
(22.09.2011 в 10:30)
| | Каково поведение скрипта при обновлении:
1) Удаляются старые записи и записываются новые
2) Старые записи остаются, новы не добавляются
PS Достаточно ли у скрипта прав доступа для обновления файла? | |
|
|
|
|
|
|
|
для: cheops
(22.09.2011 в 11:04)
| | Нужно, чтобы удалялись старые записи и добавлялись новые.
Как проверить право доступа для обновления?
Разве для обновления файла существуют отдельные права? | |
|
|
|
|
|
|
|
для: sega_z
(22.09.2011 в 11:10)
| | Т.е. вам нужно просто переписать файл? Тогда лучше использовать модификатор w+, а не a+. Последний будет дописывать строки в конец существующих записей.
Нет на обновление файла отдельных прав доступа не нужно. Нужно удостовериться, что у PHP-скрипта есть право записи в файл (при создании файла проверяется право записи в директорию, теоретически можно добиться того, что право записи в директорию будет, а право редактирования файла - нет). | |
|
|
|
|
|
|
|
для: cheops
(22.09.2011 в 12:06)
| | Модификатор w+ не подойдет, т.к. мне нужно полностью обновить всё содержимое файла. | |
|
|
|
|
|
|
|
для: sega_z
(22.09.2011 в 12:38)
| | А модификатор w+ именно это и делает, он помещает файловый указатель в начало файла и все, что было до этого в файле уничтожается. В файле остается только то, что вы запишите в него после открытия функцией fopen(). | |
|
|
|
|
|
|
|
для: cheops
(22.09.2011 в 12:48)
| | Т.е. если файл уже создан и имя файла не будет меняться, то нужно в вышеупомянутом коде заменить а+ на w+ | |
|
|
|
|
|
|
|
для: sega_z
(22.09.2011 в 12:59)
| | Можно, просто заменить a+ на w+ не задумываясь об существовании файла, дело в том, что w+ создаст отсутствующий файл, если его нет (в отличие от обычного w). | |
|
|
|
|
|
|
|
для: cheops
(22.09.2011 в 13:23)
| | Все отлично, СПАСИБО!!! | |
|
|
|
|
|
|
|
для: cheops
(22.09.2011 в 13:23)
| | cheops, отсутствующий файл ведь будет создан и при флаге "w". Разница в возможности чтения открытого файла. | |
|
|
|
|
|
|
|
для: Drago
(22.09.2011 в 18:14)
| | Да, ошибся, давно уже не пользовался fopen(). | |
|
|
|