4

ユーザーのブログ コンテンツを含む文字列があります。以下が含まれている場合:

www.google.com
http://google.com
http://www.google.com

彼らのブログ投稿では、PHP にこれらの出現を実際のハイパーリンクに置き換えてもらいたいのですが、元の部分文字列は維持します (つまり、に変更www.google.comしないでくださいhttp://www.google.com)。

PHPと正規表現でこれを行う方法を知っている人はいますか? 私はこれを試しました:

echo preg_replace('/((www|http:\/\/)[^ ]+)/', '<a href="$1" target="_blank">$1</a>', $content);

ただし、これは、リンクをスペースで終了した場合にのみ成功します。コンマまたはピリオドで終了すると失敗します。

4

2 に答える 2

3
preg_replace('/\b(?:(http(s?):\/\/)|(?=www\.))(\S+)/is',
             '<a href="http$2://$3" target="_blank">$1$3</a>',
             $content); 
于 2012-08-21T15:33:10.997 に答える
0
$pattern = '/<a (.*?)href=[\"\'](.*?)\/\/(.*?)[\"\'](.*?)>(.*?)<\/a>/i';
$new_content = preg_replace($pattern, '$5', $content);
于 2013-03-23T07:48:15.533 に答える