2014-10-06 27 views
0

我正在尝试使用curl将多个卷发帖子执行到一个URL。我有一个页面,其中包含一个URL和一个textarea框的字段,我可以将多个电子邮件(分隔线)发布到该URL。使用curl_multi的多个卷曲帖子

这是我的代码。

<?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

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

它创建无效的电子邮件地址,这与<br />结束。只有最后一个是有效的,因为你不输入新行。

+0

好的,那么我怎样才能从textarea中获得每一行并通过我的循环提供它?我正在看这篇文章的指导,这是我得到我以前的代码从:http://stackoverflow.com/questions/3702400/get-each-line-from-textarea – 2014-10-06 08:46:52

+0

只需删除线,就是它。它搞乱了你的输入。 – Marek 2014-10-06 08:49:08