str_replace 関数を使用する次のコードがあります。
$result = mysql_query("SELECT * FROM table");
$contact_link = "<a href=\"/contact-us/\" class=\"inline\" target=\"_parent\">Contact Us</a>";
while($row = mysql_fetch_array($result))
{
$answer = str_replace(array("contact us","Contact Us","Contact us") , array($contact_link , $contact_link , $contact_link), $row['answer']);
echo $answer;
}
ただし、「contact us」という文字列を入力すると、次の値が返されます。
<a href="/contact-us/" class="inline" target="_parent"><a href="/contact-us/" class="inline" target="_parent">Contact Us</a></a>
そして、私はその理由を理解できません。2 つではなく 1 つのリンクでカプセル化された Contact Us が返されることを期待していました。たぶん両方の単語が小文字で始まるからだと思ったので、2回返すのでしょうか?「お問い合わせ」に1回、「お問い合わせ」に1回?このサイトの検索結果を読み、Google で検索しましたが、同じシナリオが発生しているものは見つかりません。
関連する場合、これを行っているのは、顧客が自分の Web サイトを更新したときに、連絡先ページへのリンクが返されるようにするためです。彼が使用する場所によってフォーマットが変わる可能性があるため、これら 3 つの異なるバージョンの連絡先を取得したいと考えています。