如何让此脚本重写输出文件中的内容,现在它只将新内容与之前的内容合并(在相同的文件中)
这是我的代码
<?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";
}
?>
答案 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
答案 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;
}
希望这有帮助!