webForumDet fria alternativet

URL-konvertering part II

PHPur PHP

0 svar · 162 visningar · startad av jepsO

Medlem sedan mars 2001484 inlägg
Frågan#1

Jag har nu fått tag på ett helt OK script för att konvertera URLs till hyperlänkar:

function urltext($str) { 
$str = ereg_replace("((www.)([a-zA-Z0-9@:%_.~#-\?&]+[a-zA-Z0-9@:%_~#\?&/]))", "http://\\1", $str); 
$str = ereg_replace("((ftp://|http://|https://){2})([a-zA-Z0-9@:%_.~#-\?&]+[a-zA-Z0-9@:%_~#\?&/])", "http://\\3", $str); 
$str = ereg_replace("(((ftp://&#0124;http://&#0124;https://){1})[a-zA-Z0-9@:%_.~#-\?&]+[a-zA-Z0-9@:%_~#\?&/])", "<A HREF=\"\\1\" TARGET=\"_blank\">\\1</A>", $str); 
$str = ereg_replace("([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})","[<A HREF=\"mailto:\\1\">\\1</A>]", $str); 
return stripslashes($str); 
}

Problemet är att även <a href="URL">länktext</a> konverteras och visas felaktigt. Min idé var då att kolla om strängen som ska konverteras föregås av ett citationstecken " eller ett lika med-tecken =, och om så är fallet inte konvertera.

Hur går jag till väga? Har för mig att man lägger till nåt i stil med ^\" för att säga "inte citattecken", men jag är allt för färsk på RegExp för att komma någon vart.

------------------
/ jeps0

129 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)