1

重複の可能性:
PHP で URL をハイパーリンクに自動変換するにはどうすればよいですか?

たとえば、Web サイトにテキストフィールドがあり、ユーザーが好きなように入力できるとします。ユーザーが URL を入力すると、バックグラウンドでこの URL にコードを追加したいと思います。そのため、URL を認識するためのロジックが必要になります。

例 ユーザーはテキストを入力します。

Please visit me at my website: http://www.mywebsite.org

バックグラウンドのコードを次のように変更したいと思います。

Please visit me at my website: <a href="http://www.companywebsite.com/redirect.php?http://www.mywebsite.org">http://www.mywebsite.org</a>

テキストが送信された後にそのリンクを変更するにはどうすればよいですか?

4

4 に答える 4

2
<?php

// The Regular Expression filter
$reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";

// The Text you want to filter for urls
$text = "The text you want to filter goes here. http://google.com";

// Check if there is a url in the text
if(preg_match($reg_exUrl, $text, $url)) {

       // make the urls hyper links
       echo preg_replace($reg_exUrl, "<a href="{$url[0]}">{$url[0]}</a> ", $text);

} else {

       // if no urls in the text just return the text
       echo $text;

}
?>
于 2012-11-27T13:21:00.520 に答える
0

試してみることもできます

$text = "Please visit me at my website: http://www.mywebsite.org
Please visit me at my website: http://www.mywebsite.org";
$newText    =   preg_replace('/((http|https|ftp):\/\/[^\s]+)/i',
'<a href="$1" class="link1" target="_blank">$1</a>', $text);
echo $newText;

これです

于 2012-11-27T13:30:53.130 に答える
0

はい。正規表現を使用するだけです。preg_replaceを参照

于 2012-11-27T13:19:13.150 に答える
0

ユーザー入力を保存して Web サイトに表示する場合 (私が推測しているように)、生の入力を保存し、レンダリング時にロジックを適用する必要があります。

ロジックについては、こちらを参照してください: URL を検出し、その周りにアンカー タグを追加します

$link = preg_replace("/(http:\/\/[^\s]+)/", "<a href=\"$1\">$1</a>", $link);
于 2012-11-27T13:21:38.117 に答える