Archiv verlassen und diese Seite im Standarddesign anzeigen : eregi_replace ; :: richtig Escapen -.-'
Hallo ,
Ich habe ein Problem in einem Kleinen Script udnzwar weiss ich nicht wie ich die :: Richtig Escape -.-'
Hier ien beispiel code :
$Y = "Test::[X]::" ;
$Y = eregi_replace ("::[X]::", "A", $Y) ;
echo $Y ;
Das ergebniss währe "Test::[X]::"
bei
$Y = "Test::[X]::" ;
$Y = eregi_replace ("X", "A", $Y) ;
echo $Y ;
währe das Ergebniss "Test::[A]::"
Also liegt es woll an den :: nur wie Escape ich sie ? Wie beim . klappt es nett mit "\./"
wie escapt man die ":" ?
Mfg Dadie
Jesus_666
14.05.2005, 20:47
Also liegt es woll an den :: nur wie Escape ich sie ? Wie beim . klappt es nett mit "\./"
wie escapt man die ":" ?
Mfg Dadie
Genauso wie man alles andere auch escapt, indem man einen Backslash davorsetzt: "\:"
Wo du "\./" her hast ist mir schleierhaft; das ist Unsinn.
Dein Fehler ist, daß du die eckigen Klammern nicht escapts. Folgender Code funktioniert wunderbar:
$Y = "Test::[X]::";
$Y = eregi_replace ("\:\:\[X\]\:\:", "A", $Y);
echo $Y;
big thx dachte die [] muss ich nicht escapen aber eine sache kann ich mir nicht erklähren :
wenn cih folgenden code habe
$Y = "Test::[X]::TEST::[X]::";
$Y = eregi_replace ("\:\:\[(.*)\]\:\:", "A", $Y);
echo $Y;
Gibt er "TestA" aus weil er diese klamme siht Test::[X]::TEST::[X]::
kann man php helfen zu unterscheiden bzw. schritt für schritt zu arbeiten ?
Jesus_666
14.05.2005, 21:41
Ich arbeite immer mit den preg*-Funktionen; die sind nur wenig langsamer als ereg* und bieten komplette Perl-kompatible Regexps. Das Beispiel mit PCRE:
// Ein Match, dem ein ? folgt, ist faul - er matcht so wenig Text wie möglich
$Y = "Test::[X]::TEST::[X]::";
$Y = preg_replace ("/\:\:\[(.*?)\]\:\:/i", "A", $Y);
echo $Y;
// Alternative: Der Modifikator U macht alle Matches faul
$Y = "Test::[X]::TEST::[X]::";
$Y = preg_replace ("/\:\:\[(.*)\]\:\:/iU", "A", $Y);
echo $Y;
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.