phpbar.de logo

Mailinglisten-Archive

[php] URIs mit preg_replace() in Links verwandeln

[php] URIs mit preg_replace() in Links verwandeln

MGerh at aol.com MGerh at aol.com
Fre Jul 9 16:05:19 CEST 2004


Hallo Liste,
 
ich möchte in einem beliebig langen String aus einer Textarea alle  URIs in 
Links verwandeln. Das Beispiel aus den FAQ funktioniert bei mir nicht.  Es wird 
immer nur die erste URI ersetzt. Die Zweite bleibt so, wie sie  war...
 
 
Aus den FAQs:
 
function replace_uri($str) {
$pattern = 
'#(^|[^\"=]{1})(_http://|ftp://|mailto:|news:)([^\s<>]+)([\s\n<>]|$)#sm'_ (http://|ftp://|mailto:|news:)([^\s<>]+)([\s\n<>]|$)#sm') ;
return preg_replace($pattern,"_\\1<a_ (file://\\1<a)  
href=\"_\\2\\3\"><u>\\2\\3</u></a>\\4",$str_ (file://\\2\\3\"><u>\\2\\3</u></a>\\4",$str) );
}
 
Hat jemand ne Idee??? Hatte es mal mit 
 
function  substWWWAdress($html){ 
Protokoll                Domain                   Verzeichnis&Dateien         
      CGI-Query
$html =  
preg_replace('/\s([a-zA-Z0-9]+:\/\/)?(([-a-z0-9]+\.)+[a-z]{2,}((\/?[a-zA-Z0-9]+\.?)*)\??((&?[a-zA-Z0-9%]+)=[a-zA-Z0-9%]*)*)/i',
"<a href=_\\0_ (file://\\0) >\\0</a>",
$html);
return $html;
}
 
versucht, aber da hatter immer nur den domain-Teil gefunden, obwohl der  
Ausdruck im Regex Coach (_http://weitz.de/files/regex-coach.tgz_ 
(http://weitz.de/files/regex-coach.tgz)  [linux]  oder _http://weitz.de/files/regex-coach.exe_ 
(http://weitz.de/files/regex-coach.exe)  [win])  funktioniert.
 
Viele Grüße
 
Markus

php::bar PHP Wiki   -   Listenarchive