EisFuX: Link aus Text generieren

Beitrag lesen

Hallo Sue,

Habe mir vorgestellt den zu verlinkenden Text (z.B. Namen) durch Sonderzeichen zu kennzeichnen und dann bei der Abfrage bzw. Ausgabe zu sagen wenn dieses Zeichen vorkommt, ersetze es durch Link.
...
Ausgabe auf Seite:
echo "<p>TExt TExt Text Text <a href='suche.php?name=Billy%20Wilder'>Billy Wilder</a> TExt TExt Text Text</p>";

Als Sonderzeichen wären mir jetzt doppelte eckige Klammern äußerst sympatisch. Zum Einen kommen sie in Texten äußerst selten und in URLs überhaupt nicht vor, und zum Anderen braucht man sich als MediaWiki/Wikipedia-Geschädigter nicht umzugewöhnen ...

Das könnte dann im Rohtext so aussehen:
<p>TExt TExt Text Text [[Billy Wilder]] TExt TExt Text Text</p>

Wie kann man (bzw. ich) soetwas machen? Gibt es dafür vielleicht schon eine Fixe PHP Funktion?

Es gibt mehrere -- aber mein Favorit für solche Fälle ist
preg_replace(). Damit hat man eins-zwei-drei eine solche Quelltext-Umwandlung hingezaubert.

Ach ja: Ist das %20 richtig wenn ich den Namen mit Leerzeichen als gesamten Parameter übergeben will?

Im Prinzip ja, aber wenn du beliebige Texte in URLs umsetzen willst, solltest du dir mal die Funktion urlencode() anschauen. Die "entschärft" automatisch die Zeichen, die in URLs nichts zu suchen haben.

So und jetzt mal das ganze Gesülze in Quelltextform:

<?php  
$text_alt = 'TExt TExt Text Text [[Fräulein Ingeborg]] TExt TExt Text Text';  
$url_prefix = 'http://www.google.de/search?hl=de&q=';  
  
$text_neu = preg_replace(  
  '/\[{2}([^\]]+)\]{2}/e',  
  ' \'<a href="'.$url_prefix.'\'.urlencode("$1").\'">$1</a>\''  ,  
  $text_alt  
);  
print($text_neu);  
?>

MffG
EisFuX

--
Auch meine Hosenträger sind intelligent, in dem Sinne, dass man sie regulieren kann. Sie besitzen ein adaptives Verhalten.
Stanisław Lem