2016-05-16 2 views
0

У меня есть немного возврата статуса в объект json_encode на основе определенных обстоятельств.PHP JSON pass как строка запроса

if(verify == 1) 
    $data = array('status'=>'SUCCESS', 'points'=>$points, 'user'=>$user); 

if(verify == 2) 
    $data = array('status'=>'INACTIVE'); 

if(verify == 0) 
    $data = array('status'=>'FAILED'); 

$data_str = json_encode($data); 

мне нужно $data_str добавить в строку запроса, когда он перенаправлять нападающим URL, такие как: https://www.example.com/members?status=SUCCESS&points=2500&[email protected] ИЛИ https://www.example.com/members?status=INACTIVE

Как мог $data_str быть передать в качестве строки запроса?

+0

Вы можете использовать цикл foreach для прокрутки пар значений ключа $ data и построить строку запроса. Не забудьте установить rawurlencode для значения. –

+0

использовать 'http_build_query()' function – splash58

ответ

3

Вы можете использовать PHP функцию http_build_query для достижения этой цели, и вы никогда не должны использовать что-нибудь еще, как foreach цикла:

if($verify == 1) 
    $data = array('status'=>'SUCCESS', 'points'=>$points, 'user'=>$user); 

if($verify == 2) 
    $data = array('status'=>'INACTIVE'); 

if($verify == 0) 
    $data = array('status'=>'FAILED'); 

$url = https://www.example.com/members?.http_build_query($data); 

EDIT

Вот demo

+0

Хорошая работа, продолжайте. –

0

Другой вариант be:

  1. Превратите ваш массив в строку с помощью: implode

  2. Сделать готовы к URL с помощью: urlencode

Надежда, что помогает,

0

Попробуйте это:

$verify = 1; 
$points = 2500; 
$user = 'albert'; 

if($verify == 1) 
    $data = array('status'=>'SUCCESS', 'points'=>$points, 'user'=>$user); 

if($verify == 2) 
    $data = array('status'=>'INACTIVE'); 

if($verify == 0) 
    $data = array('status'=>'FAILED'); 

//$data_str = json_encode($data); 

$qryStr = array(); 
foreach($data as $key => $val){ 
    $qryStr[] = $key."=".$val; 
} 
echo $url = 'https://www.example.com/'.implode("&", $qryStr); //https://www.example.com/status=SUCCESS&points=2500&user=albert 

ИЛИ использовать http_build_query() ,

echo $url = 'https://www.example.com/'.http_build_query($data); //https://www.example.com/status=SUCCESS&points=2500&user=albert 
Смежные вопросы