2

当我使用 file_put_contents 时,我试图覆盖我在 php 中创建的文件,我收到 0 个写入的“x”字节

使用下面使用 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;
}
4

1 回答 1

0

欢迎来到堆栈溢出。

正如@Sebas 所说,尝试使用相对路径(../../../articles)或您的文件夹所在的位置,而不是

$_SERVER['DOCUMENT_ROOT']

祝你今天过得愉快!

于 2013-07-24T17:38:19.573 回答