phpbar.de logo

Mailinglisten-Archive

[php] replace_uri http://www.koehntopp.de/php/faq-regexp.html#regexp-12

[php] replace_uri http://www.koehntopp.de/php/faq-regexp.html#regexp-12

Werner Stuerenburg php_(at)_phpcenter.de
Fri, 20 Jul 2001 00:02:31 +0200


/**
* replace URIs with appropriate HTML code to be clickable.
*/
function replace_uri($str) {
  $pattern = '#(^|[^\"=]{1})(http://|ftp://|mailto:|news:)([^\s<>]+)([\s\n<>]|$)#sm';
  return preg_replace($pattern,"\\1<a href=\"\\2\\3\"><u>\\2\\3</u></a>\\4",$str);
}

Das ist toll, aber einige Fragen bleiben offen:

1) das wird nicht richtig verarbeitet:

... ausgehenden http://Mittelalter.de. Nur ein Beispiel ...

... ausgehenden <a
href="http://Mittelalter.de."><u>http://Mittelalter.de.
</u></a>Nur ein Beispiel ...

2) wenn http:// fehlt, kann ich vielleicht nach www. suchen. Ich
kann das nur mit

function add_http($str) {
        if (!sp($str, 'www.')) return $str;
        if (sp($str, '//www.')) return $str;
        return str_replace('www.', 'http://www.', $str);
}

das geht sicher eleganter.

3) wenn aber mailto: fehlt, stehe ich ganz auf dem Schlauch und
muß wirklich dreckigen Code schreiben oder mir regex reinziehen,
was natürlich auch nicht schlecht ist, wenn man Zeit hat.

Kann das jemand aus dem Stand erledigen?

-- 
Herzlich
Werner Stuerenburg            

_________________________________________________
ISIS Verlag, Teut 3, D-32683 Barntrup-Alverdissen
Tel 0(049) 5224-997 407 · Fax 0(049) 5224-997 409
http://pferdezeitung.de




php::bar PHP Wiki   -   Listenarchive