他用PHP函数在服务器上创建文件

时间:2014-05-08 06:50:05

标签: php

如何让此脚本重写输出文件中的内容,现在它只将新内容与之前的内容合并(在相同的文件中)

这是我的代码

<?php
    $filename = 'test.php';
    $somecontent = "<?php $jdst_xx = 'HELLO'; ?>\n";

    // Let's make sure the file exists and is writable first.
    if (is_writable($filename)) {

        // In our example we're opening $filename in append mode.
        // The file pointer is at the bottom of the file hence
        // that's where $somecontent will go when we fwrite() it.
        if (!$handle = fopen($filename, 'a')) {
             echo "Cannot open file ($filename)";
             exit;
        }

        // Write $somecontent to our opened file.
        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";
    }
    ?>

5 个答案:

答案 0 :(得分:1)

你在这里使用追加模式:

if (!$handle = fopen($filename, 'a')) {

如果要完全覆盖该文件,只需更改为

即可
if (!$handle = fopen($filename, 'w')) {

如果你想覆盖它。

希望我帮助过:)

答案 1 :(得分:1)

看到那个小小的&#39; a&#39;在这一行?

fopen($filename, 'a') 

嗯,这意味着追加。查看php.net上fopen的文档。您认为应该去哪里而不是&#39; a?#?p /

答案 2 :(得分:1)

尝试更改

if (!$handle = fopen($filename, 'a')) { // open in append mode

if (!$handle = fopen($filename, 'w')) {  // open in write mode

更多信息: - http://www.php.net/manual/en/function.fwrite.php

答案 3 :(得分:0)

试试这个:

if (!$handle = fopen($filename, 'w'))

w - 仅供写作开放;将文件指针放在文件的开头,并将文件截断为零长度。如果该文件不存在,请尝试创建它。

更多信息可以在这里找到:http://www.php.net/manual/en/function.fopen.php

答案 4 :(得分:0)

要覆盖文件,你必须打开传递'W'而不是'a'的文件。 如下所示。

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

希望这有帮助!