PHP向特定URL发送POST数据
今天工作中遇到了POST数据的问题,需要向一个特定的URL发送POST数据。
现将PHP发送POST数据的方式总结下,方便自己造福后人:
方法一:HTTP函数发送方式
说明:$data为POST发送的数据:$key为参数名,$val为参数值
$URL = "http://pre.payment.sdoa.sdo.com/";
$data = $key1."=".val1."&".$key2."=".val2;
$PostResult = http_post_data($BGWURL,$data );
方法二:Curl Post数据
function _curl_post($url, $vars) {
$ch = curl_init();
curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, 1 );
curl_setopt($ch, CURLOPT_HEADER, 0 ) ;
curl_setopt($ch, CURLOPT_POSTFIELDS, "var=".$vars);
$data = curl_exec($ch);
curl_close($ch);
if ($data)
return $data;
else
return false;
}
方法三:fsockopen方式
说明:$data为POST发送的数据:$data为数组形式
function posttohost($url, $data) {
$url = parse_url($url);
if (!$url) return "couldn't parse url";
if (!isset($url['port'])) { $url['port'] = ""; }
if (!isset($url['query'])) { $url['query'] = ""; }
$encoded = "";
while (list($k,$v) = each($data)) {
$encoded .= ($encoded ? "&" : "");
$encoded .= rawurlencode($k)."=".rawurlencode($v);
}
$fp = fsockopen($url['host'], $url['port'] ? $url['port'] : 80);
if (!$fp) return "Failed to open socket to $url[host]";
fputs($fp, sprintf("POST %s%s%s HTTP/1.0\n", $url['path'], $url['query'] ? "?" : "", $url['query']));
fputs($fp, "Host: $url[host]\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
fputs($fp, "Content-length: " . strlen($encoded) . "\n");
fputs($fp, "Connection: close\n\n");
fputs($fp, "$encoded\n");
$line = fgets($fp,1024);
if (!eregi("^HTTP/1\.. 200", $line)) return;
$results = ""; $inheader = 1;
while(!feof($fp)) {
$line = fgets($fp,1024);
if ($inheader && ($line == "\n" || $line == "\r\n")) {
$inheader = 0;
}
elseif (!$inheade
相关文档:
<?php
$link=mysql_connect("localhost","root","root");
$db=mysql_select_db("bustest",$link);
$sql1="select name from info group by name order by id asc";
print("<table border='1'>");
$res1=mysql_query($sql1);
while($row1=mysql_fetch_array($res1)){
$name=$row1["name"];
$sql2="select i ......
<?php
//分页
$link=mysql_connect("localhost","root","root");
$db=mysql_select_db("bustest",$link);
$res=mysql_query("select * from info");
//一共多少条
$count=mysql_num_rows($res);
//每页5条信息
$perpage=5;
//一共多少页
$pagecount=ceil($count/$perpage);
//传过来的页数
$pagenum=$_REQUE ......
在配置eventum的邮件服务的时候,始终不能发邮件。抓包后发现根本就没有连接到邮件服务器。再一查,原来是服务器么有
安装IMAP。下面是安装前找到的资料~~~
【转载】
安装sugarcrm,如果你不安装imap,那么你就无法使用的他的邮件功能,他的邮件功能是通过imap去读远程的邮件。
为了这个模块,我可是研究了一个下午, ......
<?php
$array[] = array("id"=>20,"name"=>"li");
$array[] = array("id"=>21,"name"=>"ai");
$array[] = array("id"=>20,"name"=>"ci");
$array[] = array("id"=>22,"name"=>"di");
foreach ($array as $key=>$value){
$age[$key] = $value['id'];
}
array_ ......