写入PHP文件的第二行

时间:2012-09-12 21:29:56

标签: php file-io

我有一个php文件,我想在第二行添加一个包含路径。我需要打开文件并在第2行插入一行代码。

我尝试了一些技巧,但没有一个工作但是我觉得它与我试写的文本有关,可能没有正确地转义字符,因为我对文件编写不太熟悉。

所以这是我要写的文件:

$file = $_SERVER['DOCUMENT_ROOT'].'/'.$domaindir.'/test.php';

以下是我要插入文件的文本:

$dbfile = "include('".$_SERVER['DOCUMENT_ROOT']."/".$domaindir."/web_".$dbname.".inc.php');";

然后我正在做的是字符串替换,但它所做的就是碰到“session_start();”钻到新线!

有人能指出我的教程方向,可能会告诉我如何将其插入我的php文件的第二行,或者确实如果有人有任何想法?

我可以肯定地说,PHP文件的路径已经过全面测试,所以我知道文件没有被打开或写入。

非常感谢任何想法。

提前致谢。

1 个答案:

答案 0 :(得分:2)

完全同意zerkms后 - PHP文件修改是错误想法 - 您不需要替换来执行此操作。

只需使用file()读取文件,将文件放在方便的数组中。然后你可以拼接数组,或者可能:

$file       = file('yourfile.php');

$first_line = array_shift($file);       // Remove first line and save it
array_unshift($file, $yourSecondLine);  // push second line
array_unshift($file, $first_line);      // Save back the first line

$fp = fopen('yourfile.php', 'w');       // Reopen the file
fwrite($fp, implode("\n", $file));     
fclose($fp);
完成此操作后,

检查文件权限。它们可能变得更加宽松(或更少。如果您在网络树上以递归方式从命令行运行此命令,对于大多数Apache安装,您会发现自己使用一个无法使用的网站,因为Apache将不再能够访问现在重生的超级用户文件。