配列に格納されているテキストの特定のキーワードをリンクに変換しようとしています。自動的にキーワードをPHPのリンクに変換する
例のテキスト:
$text='This text contains many keywords, but also formated <a href="#keywords" title="keywords">keywords</a>.'
は、だから今は、キーワード<a href="#keywords" title="keywords">#keywords</a>
に単語を変換したいです。
私は
preg_replace('/keywords/i',' <a href="#keywords">keywords</a> ',$text);
非常にシンプルにpreg_replace関数を使用しますが、明らかに、それはまた、すでにリンクとしてフォーマットされた文字列をリンクに変換したので、私のような厄介なHTMLを取得:
$text='This text contains many <a href="#keywords" title="keywords">keywords</a>, but also formated <a href="#<a href="#keywords" title="keywords">keywords</a>" title="<a href="#keywords" title="keywords">keywords</a>"><a href="#keywords" title="keywords">keywords</a></a>.'
を期待される結果:
$text='This text contains many <a href="#keywords" title="keywords">keywords</a>, but also formated <a href="#keywords" title="keywords">keywords</a>.'
何か提案がありますか? THX
EDIT
は、我々は完璧な機能から一歩ですが、それでもこのような場合にはうまく機能していません。この場合
$text='This text contains many keywords, but also formated
<a href="http://www.keywords.com/keywords" title="keywords">keywords</a>.'
それがHREFでも、単語keywords
を置き換えます私たちは再び乱雑なコードを手に入れます。
<a href="http://www.<a href="http://www.keywords.com/keywords" title="keywords">keywords</a>.com/<a href="http://www.keywords.com/keywords" title="keywords">keywords</a>" title="keywords">keywords</a>
が、「#something」のhrefが実際に有効な参照されるので、私は、例えば、パーセント記号を何か他のものを使用することをお勧め:
は、ここで私はそれをやった方法ですあなたがいつか普通のリンクを偶然に置き換えることはないということです。 – deed02392
実際には、単語を表示するための単なる例であり、キーワードはhref = ""でも発生する可能性があります。 – jakubos
それはちょうど私のポイントを補強する。あなたは私が言ったことをもう一度読まなければならない。 :) – deed02392