Hallo Leute,
ich wollte mich mal an die Regulären ausdrücke wagen, aber bin selbst recht schnell verzweifelt.
Mein Problem ist: Ich muß aus einem HTML Text alle Links finden und diese ersetzen. Z.B.:
... blabla irgendein text... <a href="http://www.php-resource.de">Php Seite</a> ... bla bla hier geht der Text weiter...
soll dann nach dem ersetzen so aussehen
... blabla irgendein text... <a href="http://www.meineseite.de/redirect.php?link=1">Php Seite</a> ... bla bla hier geht der Text weiter...
soll heißen ich brauche die URL und die linkbezeichnung zwichen den A Tags, um diese in eine Datenbank zu speichern.
Nun hab ich im Internet auch eine gutes Suchmuster gefunden:
$pattern = '=^(.*)<[aA] (.*)href\="?(\S+)"([^>]*)>(.*)</[aA]>(.*)$=msi';
Aber Problem ist die versagt wenn in einer Zeile zwei links sind... bzw er findet dann nur den letzten.
Hier mal meine Funktion die den HTML Code durchlaufen soll:
Wär echt cool wenn mir jemand helfen könnte.
Danke schon mal im vorraus.
Greetz CaS
ich wollte mich mal an die Regulären ausdrücke wagen, aber bin selbst recht schnell verzweifelt.
Mein Problem ist: Ich muß aus einem HTML Text alle Links finden und diese ersetzen. Z.B.:
... blabla irgendein text... <a href="http://www.php-resource.de">Php Seite</a> ... bla bla hier geht der Text weiter...
soll dann nach dem ersetzen so aussehen
... blabla irgendein text... <a href="http://www.meineseite.de/redirect.php?link=1">Php Seite</a> ... bla bla hier geht der Text weiter...
soll heißen ich brauche die URL und die linkbezeichnung zwichen den A Tags, um diese in eine Datenbank zu speichern.
Nun hab ich im Internet auch eine gutes Suchmuster gefunden:
$pattern = '=^(.*)<[aA] (.*)href\="?(\S+)"([^>]*)>(.*)</[aA]>(.*)$=msi';
Aber Problem ist die versagt wenn in einer Zeile zwei links sind... bzw er findet dann nur den letzten.
Hier mal meine Funktion die den HTML Code durchlaufen soll:
PHP-Code:
function HTML_Rewrite_A($qc, $Params=false)
{
$pattern = '=^(.*)<[aA] (.*)href\="?(\S+)"([^>]*)>(.*)</[aA]>(.*)$=msi';
while (preg_match($pattern, $qc, $txt) && intval($a)<1000)
{
$a++;
// Hier würde die speicherung in der DB stehen...
$qc = $txt[1]."[a href=\"".$track_URL."?url=".$url_code."&r_code={r_code}".$url_befehl."\"href]".$txt[5]."[/a]".$txt[6];
}
// dann würd ich [a href] und [/a] wieder in tags verwandeln und fertig..
// geht nur nicht immer
return $qc;
}
Danke schon mal im vorraus.
Greetz CaS
Kommentar