私はこの正規表現を使用しています:
$string = preg_replace("~(?!(?:https?://(?:www\.)?|www\.)(?:youtube\.com))(?:https?://(?:www\.)?|www\.)[\w./=?#-%:-]+~i",
'<a target="_blank" href="$0">$0</a>', $string);
しかし、ここにリンクをクリック可能なテキストとして表示することはできません:
http://2.bp.blogspot.com/_mGMUxSe_j0I/R24t5bmY2nI/AAAAAAAAAs4/ndqvaJ1Z-oY/s400/chernobyl+-+multiple+sclerosis.jpg
+-+までリンクを作成するだけで、そこで停止してクリック可能になります。再びプレーンテキストになります。
http://chornobyl.in.ua/wp-content/uploads/photo-wolf-640×250.jpg
これは、リンクの640以降のものを表示しません (したがって、x を取得しません)。
+
またはx
を追加すると[\w./=?#-%:-]
、リンクがラップされているタグ全体が取得</p>
されます。正直なところ、何をすべきかわかりません。誰かが私を助けることができますか?