我有一个名为config.php的文件,我希望它保持原样,但是在第4行有一行说:
$config['url'] = '...could be anything here';
我只想用我自己为$config['ur']
提供的网址替换第4行的内容,有没有办法在PHP中执行此操作?
答案 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);你需要修复模式,因为我是正则表达式的新手,我知道这不对。