2017-01-17 17 views
-3

私はこれらのコードを持っています。誰もこのコードについて私に説明してもらえますか、私はそれらのすべてを手に入れませんでした。ページが任意のクエリ文字列を介してアクセスされた場合 がここにコードjsonコードはPHPと統合

$query = $_SERVER['QUERY_STRING']; 
$query = explode('&', $_SERVER['QUERY_STRING']);enter code here 
$params = array(); 
foreach ($query as $param) { 
list($name, $value) = explode('=', $param, 2); 
$params[urldecode($name)][] = urldecode($value); 
} 
//echo jsonEncode($params); 
$categories = implode(", ", $params['categories']); 
$types = implode(", ", $params['type']); 

私はこれらの二つの変数について混乱していますでの「$ paramは」&

+0

ここにはJSONはありません。 –

+0

さて、まずアースが冷却されました。その後、[PHP.net](http://php.net)が絵になり、いくつかの素晴らしいマニュアルが読まれました。 –

+0

@JayBlanchardよくあることを確かめてください。あなたは 'J'ayで、あなたはあなたのお父さんの' SON'です。 –

答えて

0

を「$はparamsは」、$_SERVER['QUERY_STRING']は、そのクエリ文字列を取得します。例えば

、あなたは以下のデータ区切り文字がどこにある文字列を配列に変換するために使用

"name=msk&job=developer"

explode()を含ま$_SERVER['QUERY_STRING']この

http://example.com/index.php?name=msk&job=developer

のように、ブラウザにURLを呼び出す場合&

$query = explode('&', $_SERVER['QUERY_STRING']);

$queryデータ

Array 
    (
     [0] => "name=msk" 
     [1] => job=developer" 
    ) 

と次のように配列を含んでいます。

$params = array(); //created to hold $_SERVER['QUERY_STRING'] array of strings 


foreach ($query as $param) { 
    list($name, $value) = explode('=', $param, 2);  
    //above line try to convert "name=msk" into array like this ["name"] => array([0] = msk) 
    //list() function is used to assign values to a list of variables in one operation. 
    $params[urldecode($name)][] = urldecode($value); 
} 

$params次の配列データJSON

{"\"name":["msk"],"job":["developer\""]} 

にPHPの配列を変換すると

$paramはちょうどループイテレータであるあなたの疑問に来て使用

(
    ["name] => Array 
     (
      [0] => msk 
     ) 
    [job] => Array 
     (
      [0] => developer" 
     ) 
) 


echo json_encode($params); 

json_encode()が含まれている
$paramsは、保持するための配列です$_SERVER['QUERY_STRING']データ

+0

お世話になりました。少なくともプログラミングの新しい人たちを助けるために、誰かがここにいます....本当に感謝しています。 – user7381533

+0

私は試してみましたが、このメッセージが表示されます。「フィードバックありがとうございます!評判が15未満の人の投票が記録されますが、公表された投稿のスコアは変更されません。 – user7381533