Sesca: If else Anweisung in preg_replace

Beitrag lesen

Guten Abend

Ich versuche verzweifelt mit folgendem Code meine Twitter-Timeline formatiert auf meiner Seite auszugeben:

$json_text = preg_replace("!(^|[^"=]{1})(#|@)([^\s<>]+)([\s\n<>]|$)!sme", "'\1<a href="" . (('\2' == "#") ? "http://search.twitter.com/search?q=\3" : "http://twitter.com/#!/\3") . "" target="_blank">\2\3</a>\4'", $json[$i]->{'text'});


>   
> Mein Ziel ist es, bei einem # einen anderen Link zu generieren als bei einem @.  
>   
> Vielen Dank, Tom  
  
Versuchs mal mit einem bedingten Unterausdruck:  
http://regexp-evaluator.de/tutorial/bedingte-unterausdruecke/  
  
Alternativ kannst du auch arrays verwenden:  
  
$text = "Ich bin ein link der ersten Kategorie : regex1 und ich hier der 2. : regex2";  
$suchmuster = array('#\w+1#', '#\w+2#');  
$ersetzung = array('der eine link 1', 'der andere link 2');  
  
echo preg\_replace($suchmuster, $ersetzung, $text);