1

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

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

/*

我想将其替换为:

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

/*

'river' 存储在变量 $themename 中。我可以搜索此文件并替换该行,但希望包含回车符,例如 /n 我当前的代码不这样做,我失去了行下方的空间。

这是我当前的php代码:

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

我怎样才能整合这个 \n 或更好地重写它?提前致谢。

4

1 回答 1

3

你只是想这样做:

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

PHP 将扩展"\n"为一个回车,你的新行现在将是:

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

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

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


一个额外的(轻微相关的注释)是你可以通过使用"'s 而不是''s;来简化你的行。无需转义:

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

这是因为您可以同时使用''s 和"'s 来封装 PHP 中的字符串,因为您的字符串包含''s 我建议使用"'s 因为这意味着您不需要转义它的内容!

您甚至可以将其放到以下位置,因为 php 会在字符串中搜索变量并将其展开。

$line = "$config['default_theme'] = '$themename'\n";
于 2012-12-18T16:34:20.027 回答