Felix Riesterer: preg_replace, Teilstring einsetzen

Beitrag lesen

Lieber stiller,

so gerne ich preg_replace für solche Sachen verwende, sosehr ist es dafür eigentlich nicht gedacht.

Ich habe folgenden Text "Das ist ein LINK999TestlinkLINKOUT der verlinkt werden soll".

Du suchst ("match") nach zwei Elementen in einer Zeichenkette:

1.) eine dreistellige Zahl (lassen wir sie auch gerne x-stellig sein)
2.) einem Wort an einer bestimmten Stelle

Probieren wir das einmal mit der Funktion preg_match:

$o = '';  
$l = '';  
$s = 'Das ist ein LINK999TestlinkLINKOUT der verlinkt werden soll';  
$link = $s;  
  
if (false !== preg_match('~LINK(\d+)(\w+)LINKOUT~', $s, $found)) {  
  
    $o = $found[1];  
    $l = $found[2];  
  
    // create clickable link  
    $link = sprintf(  
        '<a class="linkout" href="http://example.com/editorial.php?o=%1$d">%2$s</a>',  
        $o,  
        htmlspecialchars($l)  
    );  
}

Das mit preg_match hatte wohl suit auch gemeint...

Liebe Grüße,

Felix Riesterer.

--
ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)