4
$title =  $_POST['title'];

$post = stripslashes($_POST['TextArea']);

$link = preg_replace('"(http://www\S+)"','<a href="$1">$1</a>', $post);

echo $link;

フォームを送信した後、上記のスクリプトはテキストエリア内のすべてのリンクを置き換え、画像の結果は壊れます。

画像ではなくリンクを置き換える方法はありますか?

URLは完璧に機能しますが、ブラウザの画像の結果は

<img src="<a href="http://...myimage.jpg"">http://.../myimage.jpg"</a> height="150" width="150">

ここに画像の説明を入力 ここに画像の説明を入力

ありがとうございました

4

2 に答える 2

4
preg_replace('"(?<!src=[\"\'])(http://www\S+)"','<a href="$1">$1</a>', $text)

これは、またはhttp://wwwが前に付いていないリンクのみを変換します。src="src='

于 2013-01-30T21:36:46.730 に答える
0
preg_replace('/(?<!src=[\"\'])(http(s)?:\/\/(www\.)?[\/a-zA-Z0-9%\?\.\-]*)(?=$|<|\s)/','<a href="$1">$1</a>', $text);

以前のソリューションでは必要に応じて URL が終了しないため、これが正しい方法です。

于 2013-10-16T22:01:09.527 に答える