Mailinglisten-Archive |
Hi,
ich bin gerade dabei eine Kopie von mysql_real_escape_string() für firebird zu
bauen.
mysql_real_escape_string() versieht folgende Zeichen mit einem "\": \x00, \n,
\r, \, ', " and \x1a
Ich benötige noch ein paar weitere Zeichen, unter anderem das Semikolon ";".
Jetzt gibt es ja schon addslashes() und escapeshellcmd() und quote_meta() und
preg_quote().
addslashes() setzt vor single quote ('), double quote ("), backslash (\) and
NUL (the NULL byte) eine backslash. Mein Semikolon ist damit leider noch
nicht abgedeckt.
escapeshellcmd() setzt vor #&;`|*?~<>^()[]{}$\, \x0A and \xFF. ' and " einen
backslash, aber nur, wenn diese zeichen NICHT paarweise auftreten.
Mit addslashes() kombiniert wären alle Zeichen abgedeckt, aber die quoten sich
ja dann selber:
Aus:
$string = "Te\st";
$quote = addslashes( escapeshellcmd( $string ) );
echo $quote; #--> Te\\\\st
preg_quote hat diese Zeichen . \ + * ? [ ^ ] $ ( ) { } = ! < > | :
Da fehlen dann wieder die ', ", ; etc. Zeichen. Man kann ja einen zusätzlichen
angeben, aber eben nur einen.
Gibt es eine Funktion, die alle genannten Zeichen vereint?
Oder muss ich mir die Funktion selber bauen mit preg_match() und
preg_replace()?
Dann würden die Probleme schon anfangen... Könnte mir da jemand einen Ansatz
liefern?
Andere Vorschläge?
Danke Gruss
Andi
php::bar PHP Wiki - Listenarchive