Problem mit regulärem Ausdruck

flowerpower

Mitglied
Hallo,

ich komme an dieser Stelle nicht weiter. Ziel des kleinen Konstrukts soll es sein, einen gesetzten Link auf einer Seite zu einer anderen Seite zu kontrollieren. Ist aber erstmal nur Rohmaterial, hat aber dennoch lange gedauert. :eek:

PHP:
<?php

// ein wenig HTML-Quelltext

$text = "<a href=\"http://www.urmelausdemeis.de/\">www.meierskuh.de</a></p> <p style=\"margin-top: 0; margin-bottom: 0;\">
<a href=\"http://www.meineseite.de\">www.meineseite.de</a></p></td> </tr> </table>";

//$text = strtolower(htmlspecialchars(file_get_contents($url));


if (preg_match('/<a[ ]*href[ ]*=[ ]*\"(www.meineseite.de|meineseite.de)\">/i', '<a href="www.meineseite.de">')){
	echo "ok";
	
	
}
else echo "nix";


?>

Soweit klappt das auch, wenn ich allerdings bei preg_match statt
'<a href="www.meineseite.de">' die Variable $text eingebe bekomme ich kein korrektes Ergebnis.

Wo liegt mein Denkfehler? Oder stimmt das hinten und vorn nicht? :suspekt:

Danke vorab.

Gruß. flowerpower
 
Du musst nicht nur die Anführungszeichen mit einem Backslash maskieren sondern auch Backslashs und einfache Slashs auch.
 
Was heißt das Ergebnis ist nicht korrekt? Erwartest du etwa, dass eine Übereinstimmung gefunden wird? Falls ja, zeig mir, wo in deinem Text entweder href="www.meineseite.de" oder href="meineseite.de" vorkommt.
 
ähm, dachte eigentlich schon, da ich doch Slashes, Backslashes etc. maskieren muss, wenn ich einen HTML-Quelltext habe. Stehe auf dem Schlauch.

Habe nun nochmal den Code überarbeitet, maskiert über den Ascii-Code.

PHP:
<?php

$text = '<a href="http://www.urmelausdemeis.de">www.meierskuh.de</a></p> <p style="margin-top: 0; margin-bottom: 0;">
<a href="http://www.meineseite.de">www.meineseite.de</a></p></td> </tr> </table>';


$text1 = addcslashes($text , '\47\92\34\39');
echo $text1;								

if (preg_match('/<a[ ]*href[ ]*=[ ]*\"(www.meineseite.de|meineseite.de)\">/i', $text1))
{
	echo "<br>ok";
}
else echo "<br>nix";

?>

Ausgabe wäre folgendes

<a href="http://www.urmelausdemeis.de">www.meierskuh.de</a></p> <p style="margin-top: 0; margin-bottom: 0;">
<a href="http://www.meineseite.de">www.meineseite.de</a></p></td> </tr> </table>

nix
 
Zuletzt bearbeitet:
... ähm - und wie kann ich dem abhelfen? Wenn ich / maskiere passiert das doch auch für // bei href ...(?) - brauche bitte noch eine kleine Inspiration. Danke.
 
Zurück