0

次の質問に 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>
4

2 に答える 2

0

文字列を間違って爆発させていると思います。あなたは爆発 " "、空の文字列です。しかし、あなたが戻ってきたことに基づいて、XMLノード形式であったと思います。すべてを印刷すると、すべてのノード情報が表示されますが、require のみです<name>Afghanistan</name>。ユーザーsimplexml_load_stringに試してみてください、php関数です。simplexml_load_stringの例。したがって、ノードに直接アクセスできnameます。この助けを願っています。

于 2013-10-28T04:41:50.563 に答える