Mailinglisten-Archive |
Hallo BeWUssTlOsEr! siehe: http://dict.leo.org/?search=senseless > hab einen string der mehrere Markierungen enthält. > jede dieser markierungen beinhalten mehrere informationen > wie z.b. eine id von einer mysql table. > > ich möchte alle Markierungen im String mit einem Link > ersetzen aber nur wenn die id die die Markierung enthält > auch in der mysql table enthalten ist. preg_replace() ist Dein Freund: http://phpbar.de/hilfen/manual/php/de/function.preg-replace.php _Eine_ Methode wäre, den Modifier "e" zu nutzen (der Ersetzungs-String wird dabei als PHP-Code behandelt): <?php function checkLink($id,$name) { if ( [ID IN DATENBANK?] ) { return '<a href="'.$id.'">'.$name.'</a>'; } else { return $name; } } $string = '--+--2435-NAME--+--'; $string = preg_replace ( "/--\+--([0-9]+)-([^-]*)--\+--/e", "checkLink('\\1','\\2')", $string ); echo $string; ?> Aber vorsicht: Sofern Du viele Links in Deinem String hast, kann Du mit dieser Methode (DB-Abfrage für jede ID) schnell Dein System ausbremsen. Im übrigen würde sicher nicht nur ich es begrüßen, wenn Du bei Deiner nächsten Mail in der Absender-Zeile Deinen Realnamen (Vorname Nachname) angibst. Das erhöht die Wahrscheinlichkeit erheblich, auch künftig Antworten auf Deine Fragen zu erhalten. Viele Grüße Arne -- http://klempert.de
php::bar PHP Wiki - Listenarchive