(PHP)fwrite不写但会覆盖

时间:2018-12-17 21:42:08

标签: php fwrite

我想打开.xml文件并将$xml_doc变量的内容写入文件。问题是,当文件为空时,它拒绝写入。仅当已经有一些文本(例如abc123)时才写入。我试图将fopen函数的模式更改为a,a +,w,w +和w,w +只是删除了文件内容,但什么也不写。

if($telecharger) {
    // Creation du fichier
    $nom = "PRELEVEMENT";
    $filename= "/home/alc/alcg_si/alcgroup/intranet/documents/prelevement_xml/".$nom."__".$date_prev.".xml";
    try {
        $file = fopen($filename, 'r+') or die("Error: can't open file.");
        chmod($filename, 0777);

        fwrite($file, '$xml_doc') or die("Error: can\'t write in file.");
        fclose($file);
    } catch (Exception $e) {
        echo "MERDEEEE<br>";
        echo 'Caught exception: ',  $e->getMessage(), "\n";
    } 

1 个答案:

答案 0 :(得分:0)

打开文件时检查文件许可权。如果文件权限不允许写入,则需要在调用chmod()之前先调用fopen()。。

您还可以用一次调用fopen来替换所有调用fwritefclosefile_put_contents()的代码。

请勿将变量$xml_doc放在单引号中,以免扩展变量。它将文字字符串$xml_doc写入文件。

if($telecharger) {
    // Creation du fichier
    $nom = "PRELEVEMENT";
    $filename= "/home/alc/alcg_si/alcgroup/intranet/documents/prelevement_xml/".$nom."__".$date_prev.".xml";
    try {
        if (file_exists($filename)) {
            chmod($filename, 0644) or die("Error: can't change file permissions");
        }
        file_put_contents($filename, $xml_doc) or die("Error: can\'t write in file.");
    } catch (Exception $e) {
        echo "MERDEEEE<br>";
        echo 'Caught exception: ',  $e->getMessage(), "\n";
    } 
相关问题