Побег проблема - PullRequest
       24

Побег проблема

0 голосов
/ 07 января 2011

Я отправляю эту строку в GET-запросе

{"foo":[{"bo1":"*","bob":"*"}]}

но получите его в PHP как

{\"foo\":[{\"bo1\":\"*\",\"bob\":"\*\"}]}

Как я могу получить это как {"foo":[{"bo1":"*","bob":"*"}]} отправка как часть строки запроса (или как я могу отправить это через метод GET, чтобы получить его правильно)? (Примечание: я не могу очистить его, так как не могу контролировать серверную часть.)

Ответы [ 3 ]

1 голос
/ 07 января 2011

Отключить magic_quotes : устарело. Если вы не можете, вы всегда можете использовать stripslashes на входе:

$goodStr = stripslashes($_GET['badStr']);
0 голосов
/ 07 января 2011

Если сервер работает на Apache, создайте файл с именем .htaccess в корне сайта (начальный период является частью имени файла).Поместите в файл следующий код:

php_flag magic_quotes_gpc Off

В противном случае вам придется каждый раз использовать stripslashes ().

0 голосов
/ 07 января 2011

Ваша конфигурация php включила magic_quotes_gpc , что вызывает автоматическое экранирование кавычек и двойных кавычек во всех суперглобалах _GET, _POST и _COOKIE.

Если вам это не нужно, выключите его . Если вы это сделаете, то вам, вероятно, следует переписать код, который основан на этом поведении, поскольку он устарел и будет удален в будущих версиях php.

Вы должны включить его в php.ini, если это возможно.

В любом случае, если вы по каким-то причинам не можете отключить это, просто используйте stripslashes ($ your_json);

...