macht aus der URL einen Hyperlink, eingebettet in den übrigen Text. Ich möchte jedoch den restlichen Text wegwerfen und die URL nur als String haben. Wie muss preg_replace verändert werden?
ich habe eine PHP-Anwendung, die ich nur ein klein wenig
modifizieren will und habe nahezu keine Ahnung von der
PHP-Syntax.
Die Funktion
preg_replace(’/([hf][tps]{2,4}://[^ \t\n\r]+[^
.\t,\n\r()"’])/’, ‚$1‘,
$string)
macht aus der URL einen Hyperlink, eingebettet in den übrigen
Text. Ich möchte jedoch den restlichen Text wegwerfen und die
URL nur als String haben. Wie muss preg_replace verändert
werden?
So richtig verstanden habe ich Dich noc nicht
(beschreibung könnte Anwendungsbeispiel enthalten),
aber ich vermute, Du möchstest sowas haben: …
$string = ’ „Das ist ein Text _?http://www.example.com,?, abcdef“ ';
Das sieht sehr gut aus, danke! Die ursprüngliche Idee war die URLs eines Fließtextes als Hyperlink anzuzeigen, den Link aber mit dieser Funktion zu verkürzen:
function txt_shorter($string, $len=80) {
// shorten a string to 80 characters
if (strlen($string) > $len)
$string = substr($string, 0, $len-3) . „…“;
return $string;
}
Dann fiel mir jedoch ein, dass der Ansatz mit Regex nur für einen Hyperlink pro Input funktioniert. Ich habe daher folgende Funktion versucht:
Um nur die URL’s aus dem Text zu extrahieren muesstest Du den kompletten Code anfassen, nicht nur die genannte Zeile.
Dies ist nicht mit preg_replace machbar (bzw nur mit Umwegen)