PHP chmod () и umask () не работают - PullRequest
1 голос
/ 31 января 2012
$url = 'http://gdata.youtube.com/feeds/api/playlists/blabla';
$fp = fopen($url, 'r'); 
$buffer='';
if ($fp) {
while (!feof($fp))
$buffer .= fgets($fp, 1024);
fclose($fp);
$buff=stripslashes($buffer);
$old = umask(0); 
file_put_contents("si.xml", $buff);
chmod("si.xml", 0777);
umask($old);

Я получаю предупреждения

Warning: file_put_contents(si.xml) [function.file-put-contents]: failed to open stream
Warning: chmod() [function.chmod]: Permission denied 

Я даже вручную установил права доступа ко всему файлу каталога на 777, но бесполезно.
Использую filezilla на windows

1 Ответ

2 голосов
/ 31 января 2012

Они работают, здесь они просто не имеют значения: -)

Разрешения на запись в каталог (и, кстати, 777 - плохая идея) дают вам право создавать, переименовывайте и удаляйте файлы в этом каталоге.

Если вы хотите записать в файлы, которые уже существуют, важны разрешения для файла , а некаталог.

Из ошибок, похоже, si.xml уже существует и защищен от вас.Имея разрешения на запись в каталог, вы можете сначала удалить находящийся там файл, а затем воссоздать его, но вам, вероятно, лучше исправить разрешения для самого файла.

...