1

サーバー上のテキスト ファイルに次の行があります。

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

/*

私はそれを置き換えたい:

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

/*

「river」は変数 $themename に格納されます。このファイルを検索して行を置き換えることはできますが、キャリッジ リターンを含めたいと考えています。

これが私の現在の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 は特殊文字を展開しませんが、二重引用符を使用している場合は置換されます。


1 つの余分な (やや関連するメモ) は、"'s の代わりに''s を使用して行を単純化できることです。エスケープの必要性を取り除く:

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

これは、PHP で'"の両方を使用して文字列をカプセル化できるためです。文字列には が含まれているため、'を使用"することをお勧めします。

php が変数の文字列を検索し、それらを展開するため、次のようにドロップダウンすることもできます。

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