用新行替换行并返回

时间:2012-12-18 16:31:51

标签: php replace

我在服务器上的文本文件中有这一行:

*/
$config['default_theme'] = 'seaside';

/*

我想将其替换为:

*/
$config['default_theme'] = 'river';

/*

'river'存储在变量$ themename中。 我可以搜索这个文件并替换该行,但是想要包含回车符,例如/ n 我当前的代码没有这样做,我失去了线下面的空间。

这是我目前的PHP代码:

if (stristr($line,'default_theme')) {
    $line = '$config[\'default_theme\'] = ' . '\'' . $themename . '\';' ;

如何整合这个\ n或更好地重写它? 提前谢谢。

1 个答案:

答案 0 :(得分:3)

你只是想这样做:

if (stristr($line,'default_theme')) {
    $line = '$config[\'default_theme\'] = ' . '\'' . $themename . '\';'."\n" ;

PHP会将"\n"扩展为回车符,您的新行现在将是:

"$config['default_theme'] = 'river';
"

(注意“看不见的”新行)

如果使用单引号(例如\ t \ n \ r \ n)引用PHP,则不会扩展特殊字符,但如果使用双引号,则会替换它们。


一个额外的(温和相关的注释)是,你可以使用"而不是'来简化你的行;无需转义:

$line = "$config['default_theme'] = '" . $themename . "'\n";

这是因为您可以使用'"来封装PHP中的字符串,因为您的字符串包含'我建议使用{{1}因为这意味着你不需要逃避它的内容!

你甚至可以将它放到下面,因为php搜索字符串的变量并将它们展开。

"