2012-01-13 16 views
1

私は、テキストエリアを使用してコメントを投稿できるようにしています。私がする必要があるのは、実際のクリック可能なリンクとして表示する前にこのURLをdbから変換することですが、htmlタグを使用することはできません。可能であれば、PHPやjqueryを使ってやりたいと思います。私は[link] [/ link]のようなものを使うことを考えましたが、私はそれをウェブサイトのメンバーから特別な努力なしにやる必要があります。任意のアイデアをしてください??テキストURLをクリック可能なURLに変換する

例:テキストのブロック内のURLを見つけるため

[link]http://www.google.com[/link] 
+0

http://stackoverflow.com/questions/8188645/javascript-regex-to-match-a-url-in-a-field-of-textの可能性の重複とhttp://stackoverflow.com/questions/1959062/how-to-add-anchor-tag-to-a-url-from-text-input – j08691

+0

[php htmlのリンクをテキストから作成する]の可能な複製(http://stackoverflow.com/questions/5252727/php-html-create-link-from-text) – s4y

答えて

1

ここに私が書いた少しのPHPスクリプトがあります。それは私のために働くようです。 preg_match_allおよびpreg_replaceメソッドを使用して、エンドユーザーが挿入したすべてのリンクを<a>タグで照合します。

<?php 

$text="Click [link]http://www.google.com[/link] or click [link]http://www.yahoo.com[/link]"; 

preg_match_all('/\\[link](.*?)\\[\/link]/s', $text, $links); 

$link_count=count($links); 
for($i=0;$i<$link_count;$i++){ 
    $link_url=preg_replace("/\[link]/", "", $links[0][$i]); 
    $link_url=preg_replace("/\[\/link]/","",$link_url); 
    $text=str_replace($links[0][$i],"<a href=\"" . $link_url . "\">" . $link_url . "</a>",$text); 
} 

echo $text; 

?> 
0

preg_replaceメソッドを使用できます。

//URL's 
$pattern = "/\[link\=(.*)\](.*)\[\/link\]/i"; 
$replace = "<a href=\"$1\">$2</a>"; 
echo preg_replace($pattern, $replace, $subject); 
関連する問題