2012-04-02 12 views
0

zu konvertieren Ich versuche, einen Textblock zu konvertieren, der HTML-Text enthält - ich möchte alle http-Links finden und sie für Link-Tracking-Zwecke konvertieren.Einfachste Möglichkeit, alle HTML-Links in einer Zeichenfolge mit PHP

So zum Beispiel so etwas wie dies in einem String würde letztere

<a href="http://www.google.com">Some Link</a> 

<a href="http://www.mysite.com/tracking.php?url=www.google.com">Some Link</a> 

Kann jemand umgewandelt werden, wie dies wird die ursprüngliche Zeichenfolge berücksichtigt tun besteht aus allen Arten von HTML, Bilder etc ..

+0

Es tut uns Leid Ich verstehe die Frage – safarov

Antwort

2

verwenden regex: (Deutsch)

<?php 

$str = '<h1>Page Title</h1><a href="http://www.google.com/">Google</a>'; 
$text = preg_replace("/href=\"http\:\/\/([a-zA-Z0-9\-]+\.[a-zA-Z0-9]+\.[a-zA-Z]{2,3}(\/*)?)/","href=\"http://www.mysite.com/tracking.php?url=$1\"",$str); 

echo $text; 

?> 

Ausgänge:

<h1>Page Title</h1><a href="http://www.mysite.com/tracking.php?url=www.google.com/"">Google</a> 
+0

Ich bekomme den folgenden Fehler: Warnung: preg_replace() [Funktion.preg-ersetzen]: Trennzeichen darf nicht alphanumerisch oder Backslash in ... – Zabs

+0

Mein Code unter .. (kann nicht scheinen, die Formatierung richtig zu bekommen ??) $ str = '

Seitentitel

Google '; $ text = preg_replace ('href = \ "http \: // ([a-zA-Z0-9 \ - \.] + \. [A-zA-Z] {2,3} (/ \ S *)?) \ "',' href = \" YOUR_TRACKING_URL = $ 1 \ "', $ str); Echo $ Text; – Zabs

+1

@Gaz Ich habe den Code behoben. Guck mal! :-) –

0
$str = '<h1>Page Title</h1><a href="http://www.google.com">Google</a>'; 
$text = preg_replace('href=\"http\://([a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(/\S*)?)\"', 'href=\"YOUR_TRACKING_URL=$1\"', $str); 
echo $text; 

Warning: preg_replace() [function.preg Ersetzen]: Delimiter darf nicht alphanumerische oder Backslash sein in/home/.... (sorry für die Vervielfältigung)

Verwandte Themen