次の質問に Resellers Panel API を使用しています。(ドキュメント)
foreach を含む Curl スクリプトがあります。これは、リセラー パネル API から国のリストを取得することです。
function getCountries() {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "myapiurl");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, POST);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$final = curl_exec($ch);
$result = explode(" ", $final);
echo '<select>';
foreach ($result as $country => $name) {
echo '<option>'.$country. '</option>';
}
echo '</select>';
curl_close($ch);
}
上記のコードの結果は次のとおりです。
<select>
<option>1</option>
<option>2</option>
</select>
これは、リストされている 114 か国すべてに当てはまります。ここに 114 個すべてのオプションを配置する必要性は感じませんでした。
foreach がカールからの各結果をカウントし、それを選択に投稿しているように見えます。カウントするだけでなく、実際に国名をエコーアウトするにはどうすればよいですか?
生の形式では、API の結果は次のようになります。たとえば、1 つの国のみがリストされます。
<ampa>
<command>"0"
<error_code>0</error_code>
<countries>
<n0>
<name>Afghanistan</name>
<iso2>AF</iso2>
<phone_code>93</phone_code>
</n0>
</countries>
</ampa>
アップデート
試しecho '<option value="'.$country.'">'.$name. '</option>';
てみたところ、次の結果になりました。
<option value="0">
0
0
56000
Afghanistan
AF
93
Albania
AL
355
Algeria
DZ
213
American</option>
$final をエコーアウトすると、次のメッセージが表示されます (要するに):
0 0 56000 Afghanistan AF 93 Albania AL 355 Algeria DZ 213 American Samoa AS 684 Andorra AD 376 Angola AO 244 Anguilla AI 1 Antarctica AQ 672 AG 1 Argentina AR 54 Armenia AM 374 Aruba AW 297 Australia AU 61 Austria AT 1 0 0.2 43
そして、foreach ステートメントを使用して選択で国名をエコーアウトできるようにしたいと考えています。
元:
<select>
<option>United States</option>
</select>