foreach循环中的PHP cURL命令仅显示最后的结果

时间:2016-02-08 20:25:53

标签: php curl

我是编程的新手,我使用PHP制作了一个页面,让我们可以输入用户ID并使用Canvas API添加观察者并且效果很好。我现在正在尝试输入要观察的人员列表并让它处理多个URL,这就是我遇到问题的地方。它似乎只处理框中的最终用户标识。

任何想法我做错了什么?这不需要经常运行,我不担心性能,所以我不需要同时处理cURL命令。

 $observeeA = explode ("\n", $observee);  
 $ch = curl_init();  
 curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);  
 curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");  
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
 foreach ($observeeA as $ob2){  
   if ($idtype == "Canvas") {  
     $url = $domain . "/api/v1/users/$observer/observees/" . $ob2; }  
   else {  
     $url = $domain . "/api/v1/users/sis_user_id:$observer/observees/sis_user_id:" . $ob2; }  
   curl_setopt($ch, CURLOPT_URL, $url);  
   $resp = curl_exec($ch);  
   echo $ob2 . "<br>" . $url . "<br>" . $resp . "<br>";  
 }  
 curl_close($ch);   

第13行的回显输出了URL的所有正确条目,但在列表中的最后一个条目之前它永远不会得到响应。

1 个答案:

答案 0 :(得分:0)

事实证明,使用explode函数将字符串存储到数组中包含额外的隐藏返回字符,所以我添加了$ ob2 = trim($ ob2);进入foreach循环,它现在可以工作。