preg_match和替换

时间:2013-06-01 07:32:40

标签: php preg-match

这里我有一些链接的内容。在这段代码中,我想用修改后的链接替换所有这些链接 功能get_web_page为我提供了修改后的链接。

$text='<a href="http://tinyurl.com/2tx">google</a>dfhjksdf sdjfkhdskjf sddsf <a href="http://tinyurl.com/d8r">Microsft.com</a>';

preg_match_all('/<a [^>]*href="?([^">]+)"?>/', $text, $matches, PREG_SET_ORDER);

foreach ($matches as $ht)
{
    $new_link=get_web_page($ht[1]);
    $new_link=$new_link['url'];
    echo $gg=str_replace($ht[1], $new_link, $text);
}

在上面的代码中一切正常,除了foreach循环,循环重复输出,在第一个输出中只有firest链接被替换。在第二个输出中只有第二个链接被替换。

输出就像这样

<a href="http://www.google.vg/">google</a>dfhjksdf sdjfkhdskjf sddsf <a href="http://tinyurl.com/d8r">Microsft.com</a>

<a href="http://tinyurl.com/2tx">google</a>dfhjksdf sdjfkhdskjf sddsf <a href="http://www.microsoft.com/en-us/default.aspx">Microsft.com</a>

我希望它一次替换所有链接,输出应该是带有修改链接的输入$text

谁能告诉我哪里出错?

0 个答案:

没有答案