本节内容:
php curl模拟post请求
在php编程中,curl函数用的挺多的,本文分享一个简单的例子。
1,本机:
<?php
$uri = "http://www./test.php";//服务器的地址
// 参数数组
$data = array (
'name' => 'tanteng'
// 'password' => 'password'
);
$ch = curl_init ();
// print_r($ch);
curl_setopt ( $ch, CURLOPT_URL, $uri );
curl_setopt ( $ch, CURLOPT_POST, 1 );
curl_setopt ( $ch, CURLOPT_HEADER, 0 );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );
$return = curl_exec ( $ch );
curl_close ( $ch );
print_r($return);
2,远程服务器:
if(isset()($_POST['name'])){
if(!empty($_POST['name'])){
echo '您好,',$_POST['name'].'!';
}
}
您可能感兴趣的文章:
php实现post php curl模拟post传输数据的函数
php curl模块的用法举例
PHP添加CURL扩展库的二种方法
php CURL模拟cookie登录的代码
php curl上传文件的简单例子
php curl实现get,post和cookie的实例代码
php中开启curl扩展的方法详解
php curl post的简单示例
php curl put方式提交与接受数据的实例代码
php curl中post与get应用实例代码
php curl模拟登录discuz并模拟发帖的实现方法
php中通过curl smtp发送邮件的例子
PHP中用CURL伪造IP来源的方法
php使用curl判断远程文件是否存在的代码
php使用curl伪造IP来源的代码
php curl 学习总结
本节内容:
PHP XML转数组
首先,得到一个xml型的对象:
$items=$resp->items;
针对这种方法:
读取对象的值,就用$items->item,或$items->item->price,如此操作很不方便,不符合php操作数组的习惯。
php提供了array方法将对象转换成数组,只需把转换数组的对象前面加上(array)即可。
例如,将$items->item(有很多item的对象)转换成数组:
foreach ($items->item as $item){
$goods[]=(array)$item;
}
$goods就是一个php数组了。
转换前:
(
[cid] => 50003793
[modified] => 2013-04-18 17:16:25
[nick] => qq307819623
[price] => 200.00
[title] => Nokia N97全新行货
)
SimpleXMLElement Object
(
[cid] => 50024921
[modified] => 2013-04-18 16:58:06
[nick] => qq307819623
[pic_url] =>pic.jpg
[price] => 888888.00
[title] => 刘俊仲
)
SimpleXMLElement Object
(
[cid] => 1512
[modified] => 2013-04-18 16:56:46
[nick] => qq307819623
[pic_url] => item_pic.jpg
[price] => 323232.00
[title] => 二手你好
)
SimpleXMLElement Object
(
[cid] => 50012166
[modified] => 2013-04-18 15:10:07
[nick] => qq307819623
[pic_url] =>0-item_pic.jpg
[price] => 32.00
[title] => 放大率拉德斯基分拉沙德疯了似的看法拉斯法
)
转换后:
Array
(
[0] => Array
(
[cid] => 50003793
[modified] => 2013-04-18 17:16:25
[nick] => qq307819623
[price] => 200.00
[title] => Nokia N97全新行货
)
[1] => Array
(
[cid] => 50024921
[modified] => 2013-04-18 16:58:06
[nick] => qq307819623
[pic_url] => pic.jpg
[price] => 888888.00
[title] => 刘俊仲
)
[2] => Array
(
[cid] => 1512
[modified] => 2013-04-18 16:56:46
[nick] => qq307819623
[pic_url] =>item_pic.jpg
[price] => 323232.00
[title] => 二手你好
)
[3] => Array
(
[cid] => 50012166
[modified] => 2013-04-18 15:10:07
[nick] => qq307819623
[pic_url] => 0-item_pic.jpg
[price] => 32.00
[title] => 放大率拉德斯基分拉沙德疯了似的看法拉斯法
)
本节内容:
生成sitemap文件
例子:
<?php
/**
* 生成sitemap文件
* 平常在用的一段代码,分享给大家
* edit: www.
*/
require_once('conn.php');
$doc = new DOMDocument('1.0', 'utf-8'); // 声明版本和编码
$doc -> formatOutput = true; //格式XML输出
$sql="select mid from dede_member_company";
$query=mysql_query()($sql);
$count=mysql_num_rows($query);
$pg=intval($count/3000);
if($count%3000)
$pg++;
$page=isset()($_GET['page'])?$_GET['page']:1;
$getpageinfo=page($page,$count,3000);
$sql="SELECT `mid`,`uptime`,`html_path` FROM `dede_member_company` order by `mid` $getpageinfo[sqllimit]";
$query=mysql_query($sql);
$urlset = $doc -> createElement('urlset');
$xmlns = $doc -> createAttribute('xmlns');
$xmlnsvalue = $doc -> createTextNode("http://www.sitemaps.org/schemas/sitemap/0.9");
$xmlnsxsi = $doc -> createAttribute('xmlns:xsi');
$xmlnsxsivalue = $doc -> createTextNode("http://www.w3.org/2001/XMLSchema-instance");
$schemaLocation = $doc -> createAttribute('xsi:schemaLocation');
$schemaLocationvalue = $doc -> createTextNode("http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd");
$xmlns -> appendChild($xmlnsvalue);
$xmlnsxsi -> appendChild($xmlnsxsivalue);
$schemaLocation -> appendChild($schemaLocationvalue);
$urlset -> appendChild($xmlns);
$urlset -> appendChild($schemaLocation);
$urlset -> appendChild($xmlnsxsi);
while($row=mysql_fetch_array($query)){
$url = $doc -> createElement('url'); //创建一个标签
$loc = $doc -> createElement('loc'); //创建一个标签
$id = $doc -> createAttribute('id'); //创建一个属性
$newsid = $doc -> createTextNode($row[mid]); //设置属性内容
$newsco = $doc -> createTextNode($row[html_path]); //设置标签内容
$lastmod = $doc -> createElement('lastmod');
$modtime = $doc -> createTextNode(date('c',$row[uptime]));
$changefreq = $doc -> createElement('changefreq');
$freqtype = $doc -> createTextNode('daily');
$priority = $doc -> createElement('priority');
$prival = $doc -> createTextNode('0.5');
$id -> appendChild($newsid); //继承属性
$loc -> appendChild($id); //继承属性内容
$loc -> appendChild($newsco); //继承标签内容 //继承子类
$lastmod ->appendChild($modtime);
$changefreq ->appendChild($freqtype);
$priority ->appendChild($prival);
$url -> appendChild($loc);
$url -> appendChild($lastmod);
$url -> appendChild($changefreq);
$url -> appendChild($priority);
$urlset -> appendChild($url);
}
$doc -> appendChild($urlset);
$doc -> save("../map/sitemap_".$page.".xml");
//=================================
if($page=="1"){
$main_sitemap = new DOMDocument('1.0', 'utf-8'); // 声明版本和编码
$main_sitemap -> formatOutput = true; //格式XML输出
$sitemapindex = $main_sitemap -> createElement('sitemapindex');
$xmlns = $main_sitemap -> createAttribute('xmlns');
$xmlnsvalue = $main_sitemap -> createTextNode("http://www.sitemaps.org/schemas/sitemap/0.9");
$sitemap = $main_sitemap -> createElement('sitemap'); //创建一个标签
$loc = $main_sitemap -> createElement('loc'); //创建一个标签
$id = $main_sitemap -> createAttribute('id'); //创建一个属性
$newsid = $main_sitemap -> createTextNode($page); //设置属性内容
$newsco = $main_sitemap -> createTextNode("http://youdomain/map/sitemap_".$page.".xml"); //设置标签内容
$xmlns -> appendChild($xmlnsvalue);
$sitemapindex -> appendChild($xmlns);
$id -> appendChild($newsid); //继承属性
$loc -> appendChild($id); //继承属性内容
$loc -> appendChild($newsco); //继承标签内容
$sitemap -> appendChild($loc); //继承子类
$sitemapindex -> appendChild($sitemap);
$main_sitemap -> appendChild($sitemapindex);
$main_sitemap -> save("../sitemap.xml");
}else{
$main_sitemap = new DOMDocument('1.0', 'utf-8'); // 声明版本和编码
$main_sitemap->preserveWhiteSpace = false;
$main_sitemap -> formatOutput = true; //格式XML输出
$main_sitemap->load("../sitemap.xml");
$notes = $main_sitemap->documentElement;
$sitemap = $main_sitemap -> createElement('sitemap'); //创建一个标签
$loc = $main_sitemap -> createElement('loc'); //创建一个标签
$id = $main_sitemap -> createAttribute('id'); //创建一个属性
$newsid = $main_sitemap -> createTextNode($page); //设置属性内容
$newsco = $main_sitemap -> createTextNode("http://youdomain/map/sitemap_".$page.".xml"); //设置标签内容
$id -> appendChild($newsid); //继承属性
$loc -> appendChild($id); //继承属性内容
$loc -> appendChild($newsco); //继承标签内容
$sitemap -> appendChild($loc); //继承子类
$notes -> appendChild($sitemap);
$main_sitemap -> appendChild($notes);
$main_sitemap -> save("../sitemap.xml");
}
//
if($page<$pg){
echo "sitemap_".$page."生成完成,正进行下一个生成";
$page++;
echo "<script>location.href='/blog_article/page/.html".$page."';</script>";
}else{
echo "生成完成!";
exit();
}
function page($page,$total,$pagesize=10,$pagelen=7){
$url=$_SERVER["REQUEST_URI"];
$parse_url=parse_url(/blog_article/$url/index.html);
$url_path=$parse_url[path];
$url_query=$parse_url[query];
$page=$_GET[page];
if($url_query){
$url_query=ereg_replace("(^|&)page=$page","",$url_query);
$url=str_replace()($parse_url["query"],$url_query,$url);
if($url_query) $url.="&page"; else $url.="page";
}else {
$url.="?page";
}
$phpfile=$url;
$pagecode = '';//定义变量,存放分页生成的HTML
$page = intval($page);//避免非数字页码
$total = intval($total);//保证总记录数值类型正确
if(!$total) return array();//总记录数为零返回空数组
$pages = ceil($total/$pagesize);//计算总分页
//处理页码合法性
if($page<1) $page = 1;
if($page>$pages) $page = $pages;
//计算查询偏移量
$offset = $pagesize*($page-1);
//页码范围计算
$init = 1;//起始页码数
$max = $pages;//结束页码数
$pagelen = ($pagelen%2)?$pagelen:$pagelen+1;//页码个数
$pageoffset = ($pagelen-1)/2;//页码个数左右偏移量
//生成html
$pagecode='<div >';
$pagecode.="<span>$page/$pages</span>";//第几页,共几页
//如果是第一页,则不显示第一页和上一页的连接
if($page!=1){
$pagecode.="<a href=/index.html"{$phpfile}=1\"><<</a>";//第一页
$pagecode.="<a href=/index.html"{$phpfile}=".($page-1)."\"><</a>";//上一页
}
//分页数大于页码个数时可以偏移
if($pages>$pagelen){
//如果当前页小于等于左偏移
if($page<=$pageoffset){
$init=1;
$max = $pagelen;
}else{//如果当前页大于左偏移
//如果当前页码右偏移超出最大分页数
if($page+$pageoffset>=$pages+1){
$init = $pages-$pagelen+1;
}else{
//左右偏移都存在时的计算
$init = $page-$pageoffset;
$max = $page+$pageoffset;
}
}
}
//生成html
for($i=$init;$i<=$max;$i++){
if($i==$page){
$pagecode.='<span>'.$i.'</span>';
} else {
$pagecode.="<a href=/index.html"{$phpfile}={$i}\">$i</a>";
}
}
if($page!=$pages){
$pagecode.="<a href=/index.html"{$phpfile}=".($page+1)."\">></a>";//下一页
$pagecode.="<a href=/index.html"{$phpfile}={$pages}\">>></a>";//最后一页
}
$pagecode.='</div>';
return array('pagecode'=>$pagecode,'sqllimit'=>' limit '.$offset.','.$pagesize);
}
?>