如何使用preg_replace替换url中标题周围的文本?

时间:2011-03-24 03:45:18

标签: php regex preg-replace

我知道preg_replace是如何运作的,但我对正则表达式很恐怖。这是我想要实现的目标。我有网址:

http://localhost/Wiki/index.php?*title=***TEST***&action=edit&redlink=1*

我想用这个替换该网址:

http://localhost/Wiki/index.php/*Special:FormStart?page_name=***TEST***&form=Main*

从第一个url(在此ex.TEST中)获取标题并将其放入新URL。

这是我到目前为止的想法

$pattern = '/^?title=\ Dynamic title goes here \&action=edit&redlink=1$/';

替换为

$replaceW = '/^Special:FormStart?page_name=\ Dynamic title goes here \&form=Main$/';

如果你让我开始这样做,我将感激不尽!

1 个答案:

答案 0 :(得分:0)

试试这个......

preg_replace(
    '/^http:\/\/localhost\/Wiki\/index\.php\?title=(.*(?=&))&action=edit&redlink=1$/',
    'http://localhost/Wiki/index.php/Special:FormStart?page_name=$1&form=Main',
    'http://localhost/Wiki/index.php?title=TEST&action=edit&redlink=1'
);

请注意(.*(?=&))使用前瞻替换动态文本(有关详情,请参阅http://ruby.about.com/od/regularexpressions/a/lookback.htm