我正在使用 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 只是计算 curl 的每个结果并将其发布在选择中。我怎样才能让它真正呼应国家名称而不仅仅是计数?
原始形式的 API 结果如下所示:例如,仅列出一个国家/地区。
<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>