使用curl_multi的多个卷曲帖子

时间:2014-10-06 08:30:11

标签: php curl

我正在尝试使用curl对URL执行多个curl帖子。我有一个页面,其中包含一个URL字段和一个textarea框,我会在其中放置多个电子邮件(在不同的行上)以发布到网址。

这是我的代码。

<?php
    $url = $_POST['url'];    
    $text = trim($_POST['emails']);
    $text = nl2br($text); 
    $text = explode("\n", $text);    
    foreach($text as $i => $text) {
      $fields = array(
        'u' => urlencode('0000'),
        'id' => urlencode('0000'),
        'FIELD0' => urlencode($text),
        'FIELD1' => urlencode('First'),
        'FIELD2' => urlencode('Last')
       );      
      $fields_string = "";
      foreach($fields as $key=>$value) { 
            $fields_string .= $key.'='.$value.'&';
      }
      rtrim($fields_string, '&');      
      $mh = curl_multi_init();
      $ch[$i] = curl_init();
      curl_setopt($ch[$i], CURLOPT_RETURNTRANSFER, 1);
      curl_multi_add_handle($mh, $ch[$i]);      
      curl_setopt($ch[$i],CURLOPT_URL, $url);
      curl_setopt($ch[$i],CURLOPT_POST, count($fields));
      curl_setopt($ch[$i],CURLOPT_POSTFIELDS, $fields_string);      
      $result = curl_exec($ch[$i]);
      curl_close($ch[$i]);      
   }    
?>

现在,如果我将一封电子邮件发送到我的字段中,它就可以了。但是当我把多封电子邮件发送到该字段时,它只发布最后一封。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

这是因为:$text = nl2br($text);

它会创建无效的电子邮件地址,以<br />结尾。只有最后一个有效,因为您没有输入新行。