0

置換用に設定された次のマーカーを含む HTML のテキスト ファイルがあります: $$ausposttrackingid$$

次の正規表現を使用してそのテキストを置き換えようとしています:

$trackingId="M6023409823490234";
$text = preg_replace("/\$\$ausposttrackingid\$\$/",$trackingId,$text);

しかし... テキストはまったく置き換えられず、$$ausposttrackingid$$ だけが残されます。私は $ 記号を適切にエスケープしたと思っていましたが、あきらめませんでした。

$$ausposttrackingid$$ を正しく取得するには、preg_replace で正規表現を指定する方法を誰か教えてもらえますか? または、代わりに、正規表現での意味を考えると、 $ の代わりに別のタグマーカーを使用する必要がありますか?

みんなありがとう。ピート

4

1 に答える 1

2

二重引用符は使用しないでください。PHP は文字列内の変数名を検索し、それらの値を置き換えます。したがって$ausposttrackingid、文字列は変数の値に置き換えられます$ausposttrackingid。それが意図されていない場合は、一重引用符を使用してください。

$text = preg_replace('/\$\$ausposttrackingid\$\$/',$trackingId,$text);

実際、必要でない限り、一重引用符の使用に慣れてください。

実際の例:

<?php
    $text = 'Something $$ausposttrackingid$$ something else';
    $trackingId = 'M6023409823490234';
    $text = preg_replace('/\$\$ausposttrackingid\$\$/', $trackingId, $text);
    print_r($text);
    //The output is: Something M6023409823490234 something else
?>

補遺

一部のスケープ文字には二重引用符を使用する必要があります。たとえば"\n"、改行は表示されますが、'\n'表示されず、代わりに\n.

于 2012-06-17T05:38:01.410 に答える