我有一个php文件,我想在第二行添加一个包含路径。我需要打开文件并在第2行插入一行代码。
我尝试了一些技巧,但没有一个工作但是我觉得它与我试写的文本有关,可能没有正确地转义字符,因为我对文件编写不太熟悉。
所以这是我要写的文件:
$file = $_SERVER['DOCUMENT_ROOT'].'/'.$domaindir.'/test.php';
以下是我要插入文件的文本:
$dbfile = "include('".$_SERVER['DOCUMENT_ROOT']."/".$domaindir."/web_".$dbname.".inc.php');";
然后我正在做的是字符串替换,但它所做的就是碰到“session_start();”钻到新线!
有人能指出我的教程方向,可能会告诉我如何将其插入我的php文件的第二行,或者确实如果有人有任何想法?
我可以肯定地说,PHP文件的路径已经过全面测试,所以我知道文件没有被打开或写入。
非常感谢任何想法。
提前致谢。
答案 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将不再能够访问现在重生的超级用户文件。