2013-04-04 133 views
0

我可以使用下面的表格使用卷曲

<form action="http://myserviceprovider/myname/server.php" method="post"> 
<input type="hidden" value="MyUsername" name="user" /> 
<input type="hidden" value="MyPassword" name="pass" />   
<input type="hidden" value="MyKey" name="sid" />  
<input type="hidden" value="12345678" name="sms[0][0]" /> 
<input type="hidden" value="MyFrist SMS Text" name="sms[0][1]" /> 
<input type="hidden" value="97654321" name="sms[1][0]" />      
<input type="hidden" value="MySecond SMS Text" name="sms[1][1]" /> 
<input type="submit" /> 
</form> 

现在我试图发送使用PHP卷曲手机短信发送短信发送POST数据到一个API。我创建了包含手机号码与信息的数组:

$sms =array(
      array("0" => "12345678", "1" => "MyFrist SMS Text"), 
      array("0" => "97654321", "1" => "MySecond SMS Text") 
    ); 

问题是我无法弄清楚究竟是如何使用下列

$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); 
curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query($post)); 
curl_exec($ch); 

发送包括用户名,密码和的myKey值你能请告诉如何解决这个问题?

+0

你一定要明白,他们有一定的规范,我想没有人能猜到他们正在请求的数据? – 2013-04-04 16:39:47

+0

你不需要使用http_build_query()。 curl可以直接接受一个数组。无论如何,你正在构建$ sms数组,如果上面的表单是应该如何提交的。 – 2013-04-04 16:41:08

回答

1

据我所知,你会想用cURL发布到FORM URL,而不是使用网站。您需要发送其他表单字段以及短信息,即您需要将表单URL传递给您的用户名,密码,Sid。

一个示例脚本可能看起来像这样:

<?php 
define('SMS_SERVICE_URL', 'http://myserviceprovider/myname/server.php'); 
define('USERNAME', 'YOUR_USERNAME_HERE'); 
define('PASSWORD', 'YOUR_PASSWORD_HERE'); 
define('KEY', 'YOUR_KEY/SID_HERE'); 

$sms =array(
      array("0" => "12345678", "1" => "MyFrist SMS Text"), 
      array("0" => "97654321", "1" => "MySecond SMS Text") 
); 


$post = array(
     'user' => USERNAME, 
     'pass' => PASSWORD, 
     'sid' => KEY, 
     'sms' => $sms, 
); 

$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL, SMS_SERVICE_URL); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post)); 

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

$result = curl_exec ($ch); 

curl_close ($ch); 
?> 
0

要使用curl以POST方式发送数据,您需要通过将CURLOPT_POST设置为true来告诉curl您想要的发布。然后你需要传递你的数据 - 把它放到像array('user'=>'<USERNAME>', ....);这样的数组中,并使用CURLOPT_POSTFIELDS传递这个数组来卷曲。