2012-01-13 3 views
1

저는 사람들이 텍스트 영역을 사용하여 의견을 게시 할 수 있도록 허용하고 때로는 URL을 게시합니다. 내가해야 할 일은 실제 클릭 가능한 링크로 표시하기 전에이 URL을 db에서 변환하는 것이지만 html 태그는 허용하지 않는 것입니다. 가능한 경우 PHP 또는 jquery를 사용하여 수행하는 것을 선호합니다. 나는 [link] [/ link]와 같은 것을 사용하려고 생각했지만 웹 사이트 회원의 노력없이이 작업을 수행해야합니다. 어떤 아이디어 바랍니다 ??텍스트 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/앵커 태그 추가 방법 - 텍스트 입력에서 URL 입력 – j08691

+0

가능한 [php html create link from text] (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); 
관련 문제