APIをやってみようと思い、https://www.panzee.biz/archives/7484←こちらのサイトのサンプルコードを分解して一から何も見ずにやってみようと思ったのですが、クエリの作成の仕方の部分で引っかかってしまいます。
↓は、配列に追加している部分ですが、
$params = array(); $params['applicationId'] = '1000000000000000000'; // アプリID $params['keyword'] = urlencode_rfc3986('防衛大学校'); // 任意のキーワード。※文字コードは UTF-8 $params['sort'] = urlencode_rfc3986('+itemPrice'); // ソートの方法。※文字コードは UTF-8 $params['minPrice'] = '1000'; // 最低価格
これを連結するforeachを出力してみると、
foreach($params as $k => $v) { echo $canonical_string .= '&' . $k . '=' . $v.'<br />'; }
以下の様になりました。
A
&applicationId=1000000000000000000
&applicationId=1000000000000000000
&keyword=%E9%98%B2%E8%A1%9B%E5%A4%A7%E5%AD%A6%E6%A0%A1
&applicationId=1000000000000000000
&keyword=%E9%98%B2%E8%A1%9B%E5%A4%A7%E5%AD%A6%E6%A0%A1
&sort=%2BitemPrice
&applicationId=1000000000000000000
&keyword=%E9%98%B2%E8%A1%9B%E5%A4%A7%E5%AD%A6%E6%A0%A1
&sort=%2BitemPrice
&minPrice=1000
この結果は予想した結果と違っていて、予想では↓です。
B
&applicationId=1000000000000000000
&keyword=%E9%98%B2%E8%A1%9B%E5%A4%A7%E5%AD%A6%E6%A0%A1
&sort=%2BitemPrice
&minPrice=1000
試しにforeach内の$canonical_string .=
を取り除いて(取り除いたforeachの出力結果が予想したBなので)サンプルコードを実行してみると、エラーが出てリクエストは受け付けられません。(Aのほうで成功確認済みです。)
なぜapplicationIdやkeywordやsortを複数回繰り返す必要があるのでしょうか?クエリ作成の考え方をご教授ください。
あと、先述した点で
foreach($params as $k => $v) { echo $canonical_string .= '&' . $k . '=' . $v.'<br />'; }
なぜ↑の出力結果がAなんでしょうか?foreachや結合代入なども見直しましたが、ヒントがありませんでした。
よろしくお願いします。m(__)m
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/25 15:41
退会済みユーザー
2016/12/25 15:46
2016/12/25 17:14