0

私は悪い間違いをしたと思います...

それは入力です:

http://www.example.com/do.php?action=5&say=text
http://www.example.com/do.php?action=8&say=text
http://www.example.com/do.php?action=10&say=text

後に別のパラメータを置きたいaction

preg_replace('/action=[0-9]/', 'action=$1&param=test', $text);

しかし、その出力は次のとおりです。

http://www.example.com/do.php?action=&param=test&say=text
http://www.example.com/do.php?action=&param=test&say=text
http://www.example.com/do.php?action=&param=test&say=text

ご覧のとおり、action値は削除されています。

私の間違いはどこにありますか?

4

2 に答える 2

0

$1部分文字列の一致であり、最初の括弧で始まります。したがって、それを使用することは/actions=([0-9]+)/、数字をキャプチャすることです。

于 2012-10-20T21:31:40.300 に答える
0

あなたが試すことができます

$url = "http://www.example.com/do.php?action=10&say=tex" ;
$url = preg_replace('/action=(\d+)/', "action=$1&param=test", $url);
echo $url ;

出力

http://www.example.com/do.php?action=10&param=test&say=tex
于 2012-10-20T21:40:19.143 に答える