为什么file_put_contents不会将数据附加到文件中?

时间:2013-06-22 09:34:20

标签: php php4

我有一个复杂的php4代码,想要使用file_put_contents在文件中写入内容,如下所示:

$iCounter = 0;
foreach blah...
    ... code
    file_put_contents("/tmp/debug28364363264936214", "test" . $iCounter++ . "\n", FILE_APPEND);
    ...code

我正在使用FILE_APPEND将数据附加到给定文件中,我确信我打印的内容不包含控制字符,随机数序列确保文件不在任何其他上下文中使用,并且计数器变量(仅用于打印输出)用于控制调用file_put_contents的频率。

执行代码并查看我刚才看到的文件内容

test8

虽然我希望看到

test1
test2
test3
test4
test5
test6
test7
test8

我的语法有问题吗?也许代码不适用于php4?我还能用什么呢?

P.S。我正在开发一个非常大的,相当古老的php4项目,所以没有办法在php5中重新编码项目。不到2年......

3 个答案:

答案 0 :(得分:2)

你可以使用foreach它有一个数组输入它将是一个similuar程序

for ($iCounter = 1; $iCounter <= 10; $iCounter++) {

$test_var .= "test" . $iCounter . PHP_EOL;

}


if (file_exists("/tmp/debug28364363264936214")) {

file_put_contents("/tmp/debug28364363264936214", $test_var, FILE_APPEND);

    echo "The file was written";
} else {
    echo "The file was not written";
}

php4代码

if (file_exists("/tmp/debug28364363264936214")) {

$fp = fopen('/tmp/debug28364363264936214', 'a');
fwrite($fp, $test_var);
fclose($fp);

    echo "The file was written";
} else {
    echo "The file was not written";
}

您的代码可能在php4中,但如果使用php5,它应该在php5中工作。你只需要重新编码错误。

答案 1 :(得分:2)

使用fopen(); file_put_contents()是php5。

$file = fopen("/tmp/debug28364363264936214", "a+");
fwrite($file, "test" . $iCounter++ . "\n");
fclose($file);

答案 2 :(得分:0)

如果您想附加数据,请执行以下操作

 $file = "yourfile.txt";
 $data = file_get_contents($file);
 $data =  $data . $newdata;
 file_put_contents($file, $data);