以下代码应该在我的php文件的开头添加字符串abcdef。
然而,它用abcdef替换了所有内容。我该如何纠正?
另外,我怎么能在最后而不是开头添加一些东西?
foreach (glob("*.php") as $file) {
$fh = fopen($file, 'c'); //Open file for writing, place pointer at start of file.
fwrite($fh, 'abcdef');
fclose($fh);
}
答案 0 :(得分:1)
您只需要打开一个带有标志的文件,该标志允许您在不将文件截断为零的情况下进行写入:
$fh = fopen($file, 'r+');
答案 1 :(得分:0)
然而,它用abcdef替换了所有内容。我该如何纠正?
在“c”模式下的fopen
文档中:
打开文件仅供写入。如果该文件不存在,则创建该文件。如果存在,则既不截断(与'w'相反),也不会调用此函数失败(如'x'的情况)。文件指针位于文件的开头。
当您向文件中写入'abcdef'时,它将覆盖前六个字符。要预先添加文本,您需要复制现有内容,方法是在编写其他文本之前将其读出,或者通过以下方式:
另外,我怎样才能在最后添加一些东西而不是开始?
使用追加模式:“a”。