1

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

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

FILE_APPEND用来将数据附加到给定文件,我确定我打印的内容不包含控制字符,随机数序列确保文件不用于任何其他上下文,以及计数器变量(仅用于printout) 用于控制file_put_contents调用频率。

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

test8

虽然我希望看到

test1
test2
test3
test4
test5
test6
test7
test8

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

PS我正在做一个非常大,非常古老的php4项目,所以没有办法在php5中重新编码项目。不会在2年内...

4

3 回答 3

4

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

$file = fopen("/tmp/debug28364363264936214", "a+");
fwrite($file, "test" . $iCounter++ . "\n");
fclose($file);
于 2013-06-22T11:22:07.277 回答
2

你可以使用 foreach 它有一个数组输入它将是一个类似的过程

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 中工作。你只需要重新编码错误。

于 2013-06-22T10:15:25.760 回答
0

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

 $file = "yourfile.txt";
 $data = file_get_contents($file);
 $data =  $data . $newdata;
 file_put_contents($file, $data);
于 2013-06-22T09:36:31.713 回答