2013-07-20 4 views
2

Я пытаюсь переписать файлы, которые я создал в PHP , когда я использую file_put_contents я получать 0 из «х» байт, записанныхне может перезаписать файлы с PHP

с функцией ниже, использует FWRITE я получаю сообщение об ошибке в файл не доступен для записи.

разрешений являются 777 (в том числе каталогов)

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

может кто-нибудь понять, в чем проблема?

function update_body($body) 
{ 
    $URL = $_REQUEST["URL"]; 
    $filename = $URL; 
    $somecontent = $body; 

    if (is_writable($filename)) 
    { 
     if (!$handle = fopen($filename, 'w')) 
     { 
      echo "Cannot open file ($filename)"; 
      exit; 
     } 

     if (fwrite($handle, $somecontent) === FALSE) 
     { 
      echo "Cannot write to file ($filename)"; 
      exit; 
     } 

     echo "Success, wrote ($somecontent) to file ($filename)"; 

     fclose($handle); 

    } 
    else 
    { 
     echo "The file $filename is not writable"; 
    } 
} 

процедура, где я создать файл

function save_body($body) 
{ 
    $datearr = getdate(); //get date array, use date for folder, time for filename 
    $current_date = $datearr['year'].$datearr['mon'].$datearr['mday']; 
    $current_time = $datearr['hours'].$datearr['minutes'].$datearr['seconds']; 

    // create directory according the date 
    if (!file_exists($_SERVER['DOCUMENT_ROOT'] .'/articles/'.$current_date)) 
     mkdir($_SERVER['DOCUMENT_ROOT'] .'/articles/'.$current_date, 0777, true); 

    // write the file 
    $fp = fopen($_SERVER['DOCUMENT_ROOT'].'/articles/'.$current_date.'/'.$current_time.'.txt',"w"); 
    fwrite($fp,$body); 
    fclose($fp); 
    return $current_date.'/'.$current_time; 
} 
+0

Как вы создаете файлы? – Sebas

+0

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

+0

«когда я использую file_put_contents» - я не вижу в файле кода вызова file_put_contents. – user4035

ответ

0

Добро пожаловать на переполнение стека.

Как сказал @Sebas, пытаются использовать относительный путь (../../../articles) или там, где ваша папка вместо

$_SERVER['DOCUMENT_ROOT'] 

Иметь хороший день!