2

PHPを介して実行されているHTMLがいくつかあります。

<a href="?char=">&</a>

a を使用して、最初の値をd 値preg_replaceに置き換えたいと考えています。でも:&urlencode

preg_replace("/char=\">(.*?)<\/a>/", "char=".urlencode("$1")."\">$1</a>", $links);

しかし、これにより$1、予想される後方参照ではなく、値が得られます。私がやろうとしていることをどのように行うことができますか (出力を次のようにします<a href="?char=%26">&</a>)?

4

2 に答える 2

3

e正規表現で修飾子を使用するか、preg_replace_callback代わりに関数 (ドキュメントを参照) を使用できます。

于 2009-11-10T19:59:05.067 に答える
1

はい、e修飾子とpreg_replace_callback関数の両方のアプローチで仕事をすることができます。
私は個人的に一行の決定を好みます:

preg_replace("/char=\">(.*?)</a>/e", '"char=".urlencode("$1")."\\">$1"', $links);

于 2009-11-10T20:23:54.697 に答える