0

这里我有一些带有一些链接的内容。在这段代码中,我想用修改过的链接替换所有这些链接,Fucctionget_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循环之外,一切都工作正常,循环重复输出,并且在第一个输出中,只有最触发的链接被替换。在第二出只有第二个链接被替换。

输出是这样的

<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带有修改过的链接的输入。

谁能告诉我哪里出错了?

4

0 回答 0