2016-10-31 6 views
0

私はPHPの完全なnewbです。この問題の調査を試みましたが、答えが見つかりませんでした。私はFormstackを使って非営利の注文書を作成しています。プロセスが終了すると、formstackは入力したすべてのデータをURLに追加します。通常、私は必要な情報を取得するために簡単なPHP GETを使用します。ただし、この例では、プライマリ・アイテムの名前の=の後に2番目のデータ・レイヤがあります。Get関数の下位情報を取得するPHP

各項目は、(例えば、項目がニワトリである)、これと同様の現れ:

&ニワトリ= CHARGE_TYPE +%3D + fixed_amount%の0Aquantity +%3D + 2%0Aunit_price +%3D + 15.00%0Atotal +%3D + 30 &

私はquantity = 2を取得する必要があります。ここでquantityはニワトリの従属値です。私の知る限りでは、ニワトリ以下文字列全体を引っ張るで終了=

<?php echo htmlspecialchars($_GET["chickens"]); ?> 

をもたらす:CHARGE_TYPE = fixed_amount量= 2 UNIT_PRICE = 15.00合計= 30

任意の考えは非常に高く評価されるだろう。ありがとう!

+0

をURLエンコードだが。 urldecode()を$ _GET ['chickens'](おそらく$ _SERVER ['QUERY_STRING']の可能性があります)で試してみてください。 –

+0

要求を解析する方法を提供したコード断片の出力から明らかになるはずです。あなたが使用しているコードを投稿してみてください(あなたが助けてくれる人達の利益のために、そのクエリ文字列に対してPHPを実行している出力)。 – symcbean

答えて

0

あなたがやろうとしているかに応じて、チキンアレイ状に値を変換することができます:それは

// separate all the value-key pairs in chicken into an array 
$array = explode("\n", $_GET["chickens"]); 

// init an array that will store all values as associative array 
$chickens = array(); 

foreach($array as $valuepair) { 
    // go too the key-value-pairs and split them at the "=" char 
    $tmp = explode("=", $valuepair); 
    // add value under keyname to array and remove some spaces with trim function 
    $chickens[trim($tmp[0])] = trim($tmp[1]); 
} 

// show what we got as key-values, as debug output 
print_r($chickens); 

// show one value of the array 
echo $chickens['quantity']; 
+0

助けてくれてありがとうございます:これはArray([charge_type] => fixed_amount [quantity] => 2 [unit_price] => 15.00 [total] => 30)です。単価? – user1424269

+0

@ user1424269更新された答え、その配列の単一の値をエコーする方法を参照してください。後でprint_rを削除する必要があります。 – sebkrueger

+0

ありがとうございました。とてもうまくいっています! – user1424269

関連する問題