0

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

我尝试了一些技术,但都没有奏效,但我认为这与我正在尝试编写的文本有关,并且由于我对文件编写不太熟悉,因此可能无法正确转义字符。

所以这是我要写入的文件:

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

这是我要插入文件的一段文本:

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

然后我正在做的是一个字符串替换,但它所做的只是碰撞“session_start();” 换行!

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

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

任何想法将不胜感激。

提前致谢。

4

1 回答 1

3

在完全同意 zerkms 之后 - PHP 文件修改是一个坏主意- 你不需要替换来做到这一点。

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

$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);

完成此操作后检查文件权限。他们可能会变得更轻松(或更少。如果您从命令行以 root 身份在 Web 树上递归运行,对于大多数 Apache 安装,您会发现自己的网站无法使用,因为 Apache 将不再能够访问现在重生的超级用户文件)。

于 2012-09-12T21:36:04.943 回答