PHP 8.4.3 Released!

stripslashes

(PHP 4, PHP 5, PHP 7, PHP 8)

stripslashesEntfernt Maskierungszeichen aus einem String

Beschreibung

stripslashes(string $string): string

Entfernt Maskierungszeichen aus einem String.

stripslashes() kann verwendet werden, wenn Sie die Daten nicht an einer Stelle einfügen wollen, die eigenes Maskieren erfordert (z. B. eine Datenbank). Zum Beispiel, wenn Sie Daten direkt aus einem HTML-Formular verarbeiten wollen.

Parameter-Liste

string

Die Eingabezeichenkette.

Rückgabewerte

Gibt einen String zurück, aus dem alle Backslashes ("\") entfernt wurden. (\' wird zu ' usw.). Doppelte Backslashes (\\) werden zu einem einfachen Backslash (\) umgesetzt.

Beispiele

Beispiel #1 Ein stripslashes()-Beispiel

<?php
$str
= "Ist Ihr Name O\'reilly?";

// Ausgabe: Ist Ihr Name O'reilly?
echo stripslashes($str);
?>

Hinweis:

stripslashes() ist nicht rekursiv. Wenn Sie die Funktion auf ein mehrdimensionales Array anwenden wollen, müssen Sie eine rekursive Funktion verwenden.

Beispiel #2 Verwendung von stripslashes() in einem Array

<?php
function stripslashes_deep($value)
{
$value = is_array($value) ?
array_map('stripslashes_deep', $value) :
stripslashes($value);

return
$value;
}

// Beispiel
$array = array("f\\'oo", "b\\'ar", array("fo\\'o", "b\\'ar"));
$array = stripslashes_deep($array);

// Ausgabe
print_r($array);
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [0] => f'oo
    [1] => b'ar
    [2] => Array
        (
            [0] => fo'o
            [1] => b'ar
        )

)

Siehe auch

add a note

User Contributed Notes 6 notes

up
71
ivijan dot stefan at gmail dot com
10 years ago
Sometimes for some reason is happens that PHP or Javascript or some naughty insert a lot of backslash. Ordinary function does not notice that. Therefore, it is necessary that the bit "inflate":

<?php
function removeslashes($string)
{
$string=implode("",explode("\\",$string));
return
stripslashes(trim($string));
}

/* Example */

$text="My dog don\\\\\\\\\\\\\\\\'t like the postman!";
echo
removeslashes($text);
?>

RESULT: My dog don't like the postman!

This flick has served me wery well, because I had this problem before.
up
6
shredder at technodrome dot com
15 years ago
Hi,

Here are recursive addslashes / stripslashes functions.
given a string - it will simply add / strip slashes
given an array - it will recursively add / strip slashes from the array and all of it subarrays.
if the value is not a string or array - it will remain unmodified!

<?php

function add_slashes_recursive( $variable )
{
if (
is_string( $variable ) )
return
addslashes( $variable ) ;

elseif (
is_array( $variable ) )
foreach(
$variable as $i => $value )
$variable[ $i ] = add_slashes_recursive( $value ) ;

return
$variable ;
}

function
strip_slashes_recursive( $variable )
{
if (
is_string( $variable ) )
return
stripslashes( $variable ) ;
if (
is_array( $variable ) )
foreach(
$variable as $i => $value )
$variable[ $i ] = strip_slashes_recursive( $value ) ;

return
$variable ;
}

?>
up
1
Tom Worster
15 years ago
A replacement that should be safe on utf-8 strings.
<?php
preg_replace
(array('/\x5C(?!\x5C)/u', '/\x5C\x5C/u'), array('','\\'), $s);
?>
up
2
o-zone at zerozone dot it
15 years ago
If you need to remove all slashes from a string, here's a quick hack:

<?php
function stripallslashes($string) {
while(
strchr($string,'\\')) {
$string = stripslashes($string);
}
}
?>

Hope it's usefull , O-Zone
up
1
stoic
18 years ago
in response to crab dot crab at gmail dot com:

$value need not be passed by reference. The 'stripped' value is returned. The passed value is not altered.
up
1
hash at samurai dot fm
21 years ago
Might I warn readers that they should be vary careful with the use of stripslashes on Japanese text. The shift_jis character set includes a number of two-byte code charcters that contain the hex-value 0x5c (backslash) which will get stripped by this function thus garbling those characters.

What a nightmare!
To Top