2017-01-10 2 views
-1

У меня есть URL-адрес, похожий на это, я хочу получить значение переменной «json», но я не получаю значения после параметров & из «Хинди: L & W 3-е стихотворение 3 раза. L & W жесткие слова 5 раз. ". Как правильно получить json?Параметры декодирования URL-адресов, имеющие специальные символы

Примечание: Я получаю значение json со стороны приложения, поэтому я не могу кодировать строку перед преобразованием ее в строку json.

http://localhost/abc/sendMsg.php?json={"studentId":"15","msg":"Hindi : L&W 3rd poem 3 times. Soc Science : L&W hard words 5 times."} 
+0

'base64_encode' строку затем отправить' sendMsg.php' там вы можете расшифровать его – Thamaraiselvam

ответ

2

Из того, что я понимаю, приложение в браузере клиента генерирует массив JSON. В этом случае, вы должны попробовать использовать JSON.stringify

<script> 
    url = "http://localhost/abc/sendMsg.php?json="+JSON.stringify(yourJSON); 
</script> 

EDIT

Хорошо, так что от вашего комментария вы сказали быть, вы будете получать URL в PHP.

ПРИМЕЧАНИЕ. Лучшей практикой было бы избежать URL-адреса с Android. Если он не ускользнет перед отправкой, это вызовет проблемы с некоторыми браузерами/приложениями, которые могут не поддерживать специальные символы. Смотрите эту ветку для конкретного RFC: space in url; did browser got smarter or server?

Если не представляется возможным в качестве запасного варианта, я бы посоветовал расколоть URL только получить строку, вместо того, чтобы использовать параметр $_GET.

Вы могли бы попробовать что-то вроде:

<?php 

$urlParts = explode('?json=', 'http://localhost/abc/sendMsg.php?json={"studentId":"15","msg":"Hindi : L&W 3rd poem 3 times. Soc Science : L&W hard words 5 times."}'); 
$jsonPart = end($urlParts); 

$decodedJson = json_decode($jsonPart); 

?> 
+0

для этого также мне нужно значение «yourJSON» как к получи? –

+0

Прежде всего, мой пример основан на том, что этот код выполняется клиентской стороной, используя Javascript. Из того, что я вижу в других комментариях, также может показаться, что вы захотите создать URL-адрес со стороны сервера, используя PHP. С какими сценариями вам нужна помощь? Затем мы сможем дать больше объяснений. –

+0

Нет Я не хочу создавать URL-адрес с сервера, у меня есть этот URL-адрес, из которого я не могу правильно получить значение переменной json из-за символа '&' –

0

, пожалуйста, используйте ниже код

$str='[{"studentId":"15","msg":"Hindi : L&W 3rd poem 3 times. Soc Science : L&W hard words 5 times."}]'; 
print_r(json_decode($str)); 

выход

Array ([0] => stdClass Object ([studentId] => 15 [msg] => Hindi : L&W 3rd poem 3 times. Soc Science : L&W hard words 5 times.)) 
0

преобразовать его в массив после получения его с помощью $ _REQUEST []

затем использовать для каждого цикла, чтобы получить конкретное значение

foreach ($json_array as $key => $value){ 
$hindi = $value->Hindi; 
echo $hindi; 

}

Смежные вопросы