使用PHP在文本文件中的特定行插入内容

时间:2009-10-08 20:47:30

标签: php file-io

我有一个名为config.php的文件,我希望它保持原样,但是在第4行有一行说:

$config['url'] = '...could be anything here';

我只想用我自己为$config['ur']提供的网址替换第4行的内容,有没有办法在PHP中执行此操作?

6 个答案:

答案 0 :(得分:6)

由于你知道确切的行号,可能最准确的方法是使用file(),它返回一行数组:

$contents = file('config.php');
$contents[3] = '$config[\'url\'] = "whateva"'."\n";
$outfile = fopen('config.php','w');
fwrite($outfile,implode('',$contents));
fclose($outfile);

答案 1 :(得分:2)

$myline = "my confg line";

$file = "config.php";

$contents = file($file);
$contents[3] = $myLine;
$file = implode("\n", $contents);

答案 2 :(得分:1)

创建另一个配置(myconfig.php)。包括原始内容并覆盖该选项。包括myconfig.php而不是原始的。

OR

转到包含配置的位置(您确实为所有包含使用了一个地方吗?)并在那里设置配置选项。

   include "config.php"
   $config['url'] = "my_leet_urlz";

答案 3 :(得分:0)

你可以读取文件,在相应的字符串上使用str_replace或preg_replace,然后将文件写回自身。

答案 4 :(得分:0)

$filename = "/path/to/file/filename";
$configFile = file($filename);
$configFile[3] = '$'."config['url'] = '...could be anything here';";
file_put_contents($filename  ,$configFile);

答案 5 :(得分:0)

如果只有一个$ config ['url'],请使用preg_replace() http://us.php.net/preg_replace

像这样的东西: $ pattern ='\ $ config ['url'] =“[\ d \ w \ s] *”' $ file_contents = preg_replace($ pattern,$ config ['url'] =“my_leet_urlz”;,$ file_contents);

你需要修复模式,因为我是正则表达式的新手,我知道这不对。