ここにいくつかのリンクを含むコンテンツがあります。このコードでは、これらのリンクをすべて変更されたリンクに置き換えたいと思います。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
が変更されたリンクである必要があります。
誰が私が間違っているのか教えてもらえますか?