Forum Doku Wiki Blog

Forumsarchiv 2004, Dezember
Pattern Matching Problem - nur Online?!

archivierte Beiträge lesen

  1. (PHP) Pattern Matching Problem - nur Online?! von andre, 09. 12. 2004, 19:06

Pattern Matching Problem - nur Online?!

Der folgende Beitrag wurde am 09. 12. 2004, 19:06 Uhr von andre veröffentlicht.

hallo alle,

ich nutze folgende function (gästebuch) um die links automatisch zu generieren:

function links($eintrag) {
  $p[0][0] = '"(( |^)((ftp|http|https){1}://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)"i';
  $p[0][1] = '<a href="\1" target="_blank">klick!</a>';
  $p[1][0] = '"( |^)(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)"i';
  $p[1][1] = '\\1<a href="http://\2" target="_blank">klick!</a>';
  $p[2][0] = '"([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})"i';
  $p[2][1] = '<a href="mailto:\1">klick!</a>';
  for($i=0; $i<count($p); $i++) {
      $eintrag = preg_replace($p[$i][0], $p[$i][1], $text);
  }
   return nl2br($eintrag);
 }

lokal auf meinem rechner funktioniert alles einwandfrei aber nicht online? ich hatte $eintrag schon auf global gesetzt - bringt auch nichts.

hat jemand eine idee?
vielen dank
andré

Pattern Matching Problem - nur Online?!

Der folgende Beitrag wurde am 09. 12. 2004, 19:39 Uhr von andre veröffentlicht.

hallo nochmal. es funktioniert schon, aber nur wenn in den link kein "-" (minus) drin vorkommt.
kennt sich jemand gut mit pattern matching aus, der das lösen kann?
ich leider nicht :(

vielen dank
drella

Pattern Matching Problem - nur Online?!

Der folgende Beitrag wurde am 09. 12. 2004, 19:57 Uhr von andre veröffentlicht.

hat sich erledigt!!! funktioniert. sorry

Pattern Matching Problem - nur Online?!

Der folgende Beitrag wurde am 09. 12. 2004, 23:48 Uhr von lulu veröffentlicht.

Huhu Andre

> hat sich erledigt!!! funktioniert. sorry

Trotzdem noch ein kleiner Hinweis.
preg_replace() kann auch mit Arrays "gefüttert"
werden. Deine for-Schleife ist nicht unbedingt notwendig.

Du könntest das ungefähr wie folgt schreiben:

$map = array(
 '"(( |^)((ftp|http|https){1}://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)"i' =>
    '<a href="\1" target="_blank">klick!</a>',
  '"( |^)(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)"i' =>
      '\\1<a href="http://\2" target="_blank">klick!</a>',

# etc.

);

$eintrag = preg_replace(array_keys($map), array_values($map), $text);







Viele Grüße

lulu
--
bythewaythewebsuxgoofflineandenjoytheday

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4