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