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