PHP: STR заменить по ссылке

У меня есть этот PHP-чат.

Если бы я набрал ссылку в чате, он не отобразил бы ее как ссылку.

Как я могу использовать STR replace для этого?

Он должен отвечать на такие вещи, как «http» http: // '' .com '' .nl '' www '' www. ' ….

Мои другие линии замены STR выглядят так:

$bericht = str_replace ("STRING1","STRINGREPLACEMENT1",$bericht); 

Кто то?

Привет! Попробуйте этот код (где-то на php.net):

 function format_urldetect( $text ) { $tag = " rel=\"nofollow\""; // // First, look for strings beginning with http:// that AREN't preceded by an <a href tag // $text = preg_replace( "/(?<!<a href=(\"|'))((http|ftp|http)+(s)?:\/\/[^<>\s]+[\w])/i", "<a target=\"_new\" class=\"httplink\" href=\"\\0\"" . $tag . ">\\0</a>", $text ); // // Second, look for strings with casual urls (www.something.com...) and make sure they don't have a href tag OR a http:// in front, // since that would have been caught in the previous step. // $text = preg_replace( "/(?<!<a href=(\"|')http:\/\/)(?<!http:\/\/)((www)\.[^<>\s]+[\w])/i", "<a target=\"_new\" class=\"httplink\" href=\"http://\\0\"" . $tag . ">\\0</a>", $te xt ); $text = preg_replace( "/(?<!<a href=(\"|')https:\/\/)(?<!http:\/\/)((www)\.[^<>\s]+[\w])/i", "<a target=\"_new\" class=\"httplink\" href=\"http://\\0\"" . $tag . ">\\0</a>", $t ext ); return $text; } 

Ух, сломанный отступ. попробуйте этот http://triop.se/code.txt

Вместо этого вы должны использовать регулярное выражение. посмотреть на preg_replace

 $regex = '`(\s|\A)(http|https|ftp|ftps)://(.*?)(\s|\n|[,.?!](\s|\n)|$)`ism'; $replace = '$1<a href="$2://$3" target="_blank">$2://$3</a>$4' $buffer = preg_replace($regex,$replace,$buffer);