Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: json_encode, убрать экранирование слэшей

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Deonis
Отправлено: 24 Декабря, 2012 - 09:26:12
Post Id



Посетитель


Покинул форум
Сообщений всего: 298
Дата рег-ции: Нояб. 2009  


Помог: 14 раз(а)




Здравствуйте! При преобразовании массива в JSON-представление, экранируются слеши. То есть, в данном примере:
PHP:
скопировать код в буфер обмена
  1. $arr = array('url'=>'http://forum.php.su/search_yandex.php');
  2. echo json_encode($arr);

Результат будет:
CODE (htmlphp):
скопировать код в буфер обмена
  1. {"url":"http:\/\/forum.php.su\/search_yandex.php"}

А это меня не устраивает. Начиная с версии PHP 5.4.0, есть константа JSON_UNESCAPED_SLASHES, которая решает данную проблему, но как можно выкрутиться, если версия PHP ниже 5.4.0? Как вариант, можно полученную JSON-строку обработать с помощью функции stripslashes(), но мне кажется, что есть какая-то константа, которая делает это еще на стадии кодирования.
 
 Top
Мелкий Супермодератор
Отправлено: 24 Декабря, 2012 - 09:32:20
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Deonis пишет:
мне кажется, что есть какая-то константа, которая делает это еще на стадии кодирования.

Deonis пишет:
Начиная с версии PHP 5.4.0, есть константа JSON_UNESCAPED_SLASHES

Правильно заданный вопрос содержит в себе ответ?


-----
PostgreSQL DBA
 
 Top
Deonis
Отправлено: 24 Декабря, 2012 - 09:37:51
Post Id



Посетитель


Покинул форум
Сообщений всего: 298
Дата рег-ции: Нояб. 2009  


Помог: 14 раз(а)




Мелкий пишет:
Правильно заданный вопрос содержит в себе ответ?

Где-то так Подмигивание , но вы немного не уловили суть. Версия PHP на хосте моего клиента аж 5.2.17 Огорчение и тут при всем желании JSON_UNESCAPED_SLASHES использовать не получиться. Поэтому пытаюсь выяснить - есть ли альтернатива? Не исключаю, что просто упустил где-то информацию, но и для старых версий PHP, тоже может существовать нужный параметр.
 
 Top
Toxa
Отправлено: 24 Декабря, 2012 - 10:01:32
Post Id



Посетитель


Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2008  


Помог: 8 раз(а)

[+]


http://nl.php.net/manual/en/func...ncode.php#109224

A more simple method if you have a version of php that does not take into account JSON_UNESCAPED_SLASHES



-----
Удобный сервис для хранения файлов
 
 Top
EuGen Администратор
Отправлено: 24 Декабря, 2012 - 10:07:10
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Deonis пишет:
Поэтому пытаюсь выяснить - есть ли альтернатива? Не исключаю, что просто упустил где-то информацию, но и для старых версий PHP, тоже может существовать нужный параметр.

На уровне реализации в более ранних версиях - невозможно. Придется использовать замену (пример одной из возможностей нужной замены - выше)


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Deonis
Отправлено: 24 Декабря, 2012 - 10:13:46
Post Id



Посетитель


Покинул форум
Сообщений всего: 298
Дата рег-ции: Нояб. 2009  


Помог: 14 раз(а)




Toxa пишет:
A more simple method if you have a version of php that does not take into account JSON_UNESCAPED_SLASHES

I don't think that the regular expression is a simple method. I have already said that the alternative - using the function stripslashes()

EuGen пишет:
На уровне реализации в более ранних версиях - невозможно

Жаль. Надежда была Хм

(Отредактировано автором: 24 Декабря, 2012 - 10:15:07)

 
 Top
Toxa
Отправлено: 24 Декабря, 2012 - 13:36:07
Post Id



Посетитель


Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2008  


Помог: 8 раз(а)

[+]


str_replace is not a regular expression method and stripslashes is got to cut all slashes not only before '/'


-----
Удобный сервис для хранения файлов
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB