URL,php模式和preg_replace

时间:2012-09-13 02:51:41

标签: php design-patterns preg-replace

我正在尝试重写此网址:

http://www.mysite.com/index.php?topic=54.msg432#msg432

到这一个:

http://www.mysite.com/index.php?thread=54&post=432

使用preg_replace。我试过这个:

echo preg_replace('|http?://www\.mysite\.com/index.php/topic=(\d)|', '\1',
                  'http://www.mysite.com/index.php?topic=54.msg432#msg432');

我无法得到线程:(我尝试使用手册,但php模式令人困惑。我习惯了python RE模式......

这不起作用

php -r "echo preg_replace('~\?topic=(\d+).msg(\d+)~', '?thread=$1&post=$2', 'http://www.mysite.com/index.php?topic=54.msg432#msg432');" 

result:
http://www.mysite.com/index.php?thread=&post=#msg432

此外,我将欣赏一个很好的PHP模式手册。

由于

1 个答案:

答案 0 :(得分:1)

尝试:

echo preg_replace('~\?topic=(\d+)\.msg(\d+).*~', '?thread=\1&post=\2', 'http://www.mysite.com/index.php?topic=54.msg432#msg432');