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

你可以试试

$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 回答
0

$1是一个子字符串匹配,并从第一个括号开始。所以使用它就是/actions=([0-9]+)/捕捉数字。

于 2012-10-20T21:31:40.300 回答