0

我正在尝试为我的托管公司向我的转售商面板进行 api 调用。我使用以下方法成功接收结果:

<?php
   function getCountries() {
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_URL, "myApiUrlHere");
      curl_setopt($ch, CURLOPT_POST, 1);
      curl_setopt($ch, CURLOPT_POSTFIELDS, POST);
      $result = curl_exec($ch);
        foreach ($result as $country) {
          echo '<select>'.$country. '</select>';
        }

      curl_close($ch);
    }

?>

这会导致一大块显示国家代码和国家名称的混乱代码。(不知道为什么会出现这种情况。)问题出在 foreach 循环中。使用:

foreach ($reult as $country) {
 echo '<select>'.$country. '</select>';
}

我收到此错误:

Warning: Invalid argument supplied for foreach() in D:\Hosting\11605285\html\assets\functions\hosting-functions.php on line 10

我在这张照片中看到的正是:

在此处输入图像描述

所以基本上,我不明白为什么这些国家仍然如此回应。而且我不确定我提供了什么有价值的论点,基于http://www.w3schools.com/php/php_looping_for.asp我的代码安排对于每个循环都是正确的。我做错了什么?请帮忙!

4

1 回答 1

1

foreach 需要一个数组,它得到一个布尔值。

如果你想要一个字符串,然后设置 CURLOPT_RETURNTRANSFER,但如果不成功它仍然可以返回 false,所以一定要检查:

 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

例如,您可以使用explode()将字符串拆分为字符串数组,并查看explode() 文档中的“另见”部分以了解类似的有用功能。

于 2013-10-28T01:47:59.633 回答