Bevan: Zwei Funktionen

HI,
Ich habe mich ein wenig in verschiedenen PHP-Referenzen umgesehen und dort zwei Funktionen entdeckt, die meiner Meinung nach identisch sind. Aber das kann ich eigentlich nicht glauben. Es handelt sich um "stripcslashes()" und "stripslashes()". Wo liegt bei diesen Funktionen der Unterschied?

Danke
Bevan

  1. Hi,

    Ich habe mich ein wenig in verschiedenen PHP-Referenzen umgesehen und dort zwei Funktionen entdeckt, die meiner Meinung nach identisch sind. Aber das kann ich eigentlich nicht glauben. Es handelt sich um "stripcslashes()" und "stripslashes()". Wo liegt bei diesen Funktionen der Unterschied?

    string stripslashes (string str):

    Returns a string with backslashes stripped off. (' becomes ' and so on.) Double backslashes are made into a single backslash.

    string stripcslashes (string str):

    Returns a string with backslashes stripped off. Recognizes C-like \n, \r ..., octal and hexadecimal representation.

    ueps

  2. Holladiri

    Ich habe mich ein wenig in verschiedenen PHP-Referenzen umgesehen und dort zwei Funktionen entdeckt, die meiner Meinung nach identisch sind. Aber das kann ich eigentlich nicht glauben. Es handelt sich um "stripcslashes()" und "stripslashes()". Wo liegt bei diesen Funktionen der Unterschied?

    Der Unterschied ist, daß sie verschiedene Slashes entfernen.
    Welche das sind findest Du in der Doku zu addslashes() und addcslashes():

    <zitat>
    string addslashes ( string str)
    Gibt einen String (Zeichenkette) zurück, in dem bestimmten Zeichen ein Backslash "" voran gestellt wurde. Diese Funktion ist z.B. für Datenbankabfragen wichtig. Die behandelten Zeichen sind der einfache und der doppelte Anführungsstrich (' und "), der Rückstrich () selbst sowie NUL (das Null-Byte).

    string addcslashes ( string str, string charlist)
    Es wird ein String zurück gegeben, in dem jedem Zeichen, das in charlist steht, ein "" voran gestellt wurde. Teile wie \n, \r etc. werden wie in C übergangen, ASCII-Zeichen kleiner als 32 und grösser als 126 werden in ihren oktal-Wert umgesetzt. Seien Sie bei der Umsetzung von alphanumerischen Zeichen vorsichtig. Sie können in charlist einen Bereich wie "\0..\37" angeben. Dadurch wird allen ASCII-Zeichen von 0 bis 31 ein "" voran gestellt.
    </zitat>

    Genauer ist die englische Doku:

    <zitat>
    string addslashes ( string str)
    Returns a string with backslashes before characters that need to be quoted in database queries etc. These characters are single quote ('), double quote ("), backslash () and NUL (the NULL byte).

    string addcslashes ( string str, string charlist)
    Returns a string with backslashes before characters that are listed in charlist parameter. It escapes \n, \r etc. in C-like style, characters with ASCII code lower than 32 and higher than 126 are converted to octal representation.
    Be careful if you choose to escape characters 0, a, b, f, n, r, t and v. They will be converted to \0, \a, \b, \f, \n, \r, \t and \v. In PHP \0 (NULL), \r (carriage return), \n (newline) and \t (tab) are predefined escape sequences, while in C all of these are predefined escape sequences.
    charlist like "\0..\37", which would escape all characters with ASCII code between 0 and 31.
    </zitat>

    Ciao,

    Harry