2013-08-08 4 views
0

Я использую версию 5.1.6 и наблюдаю странную проблему. Я не могу создавать и писать в файл из скрипта, тогда как если я явно создаю файл, а затем запускаю скрипт, он записывает данные.PHP-версия: 5.1.6: Не удается записать файл

Я пропустил что-то очевидное здесь?

тест код, который я пытаюсь это:

$message = "Test"; 
$myFile = "testFile.txt"; 
if (file_exists($myFile)) { 
    $fh = fopen($myFile, 'a'); 
    fwrite($fh, $message."\n"); 
} else { 
    chmod("/path/to/dir/*", 0755); //updated code 
    $fh = fopen($myFile, 'w') or die("Cannot open file \"$myFile\"...\n"); 
    fwrite($fh, $message) ; 
} 
fclose($fh); 

ВЫВОД: Спасибо за все ответы. Это вопрос разрешения. Я изменил путь к каталогу, и он работает :)

+1

выдачи разрешений? use chmod

+1

Это проблема с разрешением на использование файлов и каталогов и не связана с этой древней версией PHP, которая должна быть обновлена! – Sven

+0

@GhilasBELHADJ: пытался изменить разрешения, но все еще сталкивался с той же проблемой (отредактированный код выше) – iDev

ответ

1

Ваш код в порядке. Только строка, в которой находится chmod, не требуется.

Отмечено chmod("/path/to/dir/*", 0755); Это будет chmod всех файлов в папке с набором.

Обратитесь к PHP руководство по chmod на http://php.net/manual/en/function.chmod.php

$message = "Test"; 
$myFile = "testFile.txt"; 
if (file_exists($myFile)) { 
    $fh = fopen($myFile, 'a'); 
    fwrite($fh, $message."\n"); 
} else { 

//chmod("/path/to/dir/*", 0755); 
    $fh = fopen($myFile, 'w') or die("Cannot open file \"$myFile\"...\n"); 
    fwrite($fh, $message) ; 
} 
fclose($fh); 
2

У меня была подобная проблема и улажена, сменив владельца папки на apache. Это должно дать вашим php-скрипту необходимые разрешения для создания файлов и записи файлов в этой папке. Я полагаю, вы не сможете прослушать папку из php-скрипта только через доступ к серверу (ssh или ftp). По крайней мере, это был путь, по которому мне пришлось идти.

Смежные вопросы