2010-08-01 9 views
7

Robię niektóre zaznaczenia przy użyciu obiektu PDO, ale po fetch wyniku otrzymałem ciąg znaków z numerem ewidencyjnym ' do \', w jaki sposób mogę wyłączyć to?PHP - PDO return escaping slash, jak go usunąć?

+0

prostu nie dodać –

+0

'magic_quotes' gdzie niepełnosprawnej z PHP 5.4 roku. Na szczęście nie będzie to już problemem. – jbx

Odpowiedz

8

Wygląda na to, że możesz mieć problemy z Magic Quotes. Możesz je wyłączyć, postępując zgodnie z the instructions here. Zaleca się, aby wyłączyć je zamiast ominąć je za pomocą funkcji, aby po prostu usunąć kreski.

2

Wygląda na to, że masz włączone magic quotes.

Powinieneś faktycznie wyłączyć magiczne cytaty z php.ini.

Albo od wewnątrz skryptu, można obsługiwać go tak:

if (get_magic_quotes_gpc()) 
{ 
    $str = stripslashes($str); 
} 

Teraz możesz użyć zmiennej $str normalnie.

+0

Najlepiej sprawdzić, czy magic_quotes jest rzeczywiście włączone przed usunięciem ukośników, w przeciwnym razie usuniesz ukośniki, które mają pozostać nienaruszone. – tdammers

+0

@tdammers: Zaktualizowałem odpowiedź przed tym komentarzem, dziękuję i tak :) – Sarfraz

1

Pracowałem na współdzielonym hostingu, który nie miał dostępu do php.ini - ini_set() również nie będzie działać. Ten fragment pracował jak czar: [source]

// since PHP 5 
if (get_magic_quotes_gpc()) { 
    function stripslashes_gpc(&$value) 
    { 
     $value = stripslashes($value); 
    } 
    array_walk_recursive($_GET, 'stripslashes_gpc'); 
    array_walk_recursive($_POST, 'stripslashes_gpc'); 
    array_walk_recursive($_COOKIE, 'stripslashes_gpc'); 
    array_walk_recursive($_REQUEST, 'stripslashes_gpc'); 
}