PHP教程之PHP curl
exit来实现结束后面的PHP语句的执行,缩小调试范围,特别是数据库交互的程序,先输出个SQL语句看看,对了,再分析怎么会插入/删除不成功呢?这样对查错很有帮助。 curl_setopt(PHP 4 >= 4.0.2)
curl_setopt -- 为CURL挪用设置一个选项
描写
bool curl_setopt (int ch, string option, mixed value)
curl_setopt()函数将为一个CURL会话设置选项。option参数是你想要的设置,value是这个选项给定的值。
以下选项的值将被作为长整形利用(在option参数中指定):
CURLOPT_INFILESIZE: 当你上传一个文件到近程站点,这个选项告知PHP你上传文件的巨细。
CURLOPT_VERBOSE: 假如你想CURL呈报每件不测的工作,设置这个选项为一个非零值。
CURLOPT_HEADER: 假如你想把一个头包括在输入中,设置这个选项为一个非零值。
CURLOPT_NOPROGRESS: 假如你不会PHP为CURL传输显示一个历程条,设置这个选项为一个非零值。
注重:PHP主动设置这个选项为非零值,你应当仅仅为了调试的目标来改动这个选项。
CURLOPT_NOBODY: 假如你不想在输入中包括body局部,设置这个选项为一个非零值。
CURLOPT_FAILONERROR: 假如你想让PHP在产生毛病(HTTP代码前往大于等于300)时,不显示,设置这个选项为一人非零值。默许行动是前往一个正常页,疏忽代码。
CURLOPT_UPLOAD: 假如你想让PHP为上传做筹办,设置这个选项为一个非零值。
CURLOPT_POST: 假如你想PHP去做一个正轨的HTTP POST,设置这个选项为一个非零值。这个POST是通俗的 application/x-www-from-urlencoded 类型,多半被HTML表单利用。
CURLOPT_FTPLISTONLY: 设置这个选项为非零值,PHP将列出FTP的目次名列表。
CURLOPT_FTPAPPEND: 设置这个选项为一个非零值,PHP将使用近程文件取代掩盖它。
CURLOPT_NETRC: 设置这个选项为一个非零值,PHP将在你的 ~./netrc 文件中查找你要创立毗连的近程站点的用户名及暗码。
CURLOPT_FOLLOWLOCATION: 设置这个选项为一个非零值(象 'Location: ')的头,办事器会把它当作HTTP头的一局部发送(注重这是递归的,PHP将发送形如 'Location: '的头)。
CURLOPT_PUT: 设置这个选项为一个非零值去用HTTP上传一个文件。要上传这个文件必需设置CURLOPT_INFILE和CURLOPT_INFILESIZE选项.
CURLOPT_MUTE: 设置这个选项为一个非零值,PHP关于CURL函数将完整缄默。
CURLOPT_TIMEOUT: 设置一个长整形数,作为最大延续几何秒。
CURLOPT_LOW_SPEED_LIMIT: 设置一个长整形数,掌握传送几何字节。
CURLOPT_LOW_SPEED_TIME: 设置一个长整形数,掌握几何秒传送CURLOPT_LOW_SPEED_LIMIT划定的字节数。
CURLOPT_RESUME_FROM: 传递一个包括字节偏移地址的长整形参数,(你想转移到的入手下手表单)。
CURLOPT_SSLVERSION: 传递一个包括SSL版本的长参数。默许PHP将被它本人勉力切实其实定,在更多的平安中你必需手工设置。
CURLOPT_TIMECONDITION: 传递一个长参数,指定怎样处置CURLOPT_TIMEVALUE参数。你可以设置这个参数为TIMECOND_IFMODSINCE 或 TIMECOND_ISUNMODSINCE。这仅用于HTTP。
CURLOPT_TIMEVALUE: 传递一个从1970-1-1入手下手到如今的秒数。这个工夫将被CURLOPT_TIMEVALUE选项作为指定值利用,或被默许TIMECOND_IFMODSINCE利用。
以下选项的值将被作为字符串:
CURLOPT_URL: 这是你想用PHP取回的URL地址。你也能够在用curl_init()函数初始化时设置这个选项。
CURLOPT_USERPWD: 传递一个形如:作风的字符串,感化PHP去毗连。
CURLOPT_PROXYUSERPWD: 传递一个形如: 格局的字符串去毗连HTTP代办署理。
CURLOPT_RANGE: 传递一个你想指定的局限。它应当是'X-Y'格局,X或Y是被除外的。HTTP传送一样撑持几个距离,用逗句来分隔(X-Y,N-M)。
CURLOPT_POSTFIELDS: 传递一个作为HTTP “POST”操作的一切数据的字符串。
CURLOPT_REFERER: 在HTTP恳求中包括一个'referer'头的字符串。
CURLOPT_USERAGENT: 在HTTP恳求中包括一个'user-agent'头的字符串。
CURLOPT_FTPPORT: 传递一个包括被ftp 'POST'指令利用的IP地址。这个POST指令告知近程办事器去毗连咱们指定的IP地址。 这个字符串可所以一个IP地址,一个主机名,一个收集界面名(在UNIX下),或是‘-'(利用体系默许IP地址)。
CURLOPT_COOKIE: 传递一个包括HTTP cookie的头毗连。
CURLOPT_SSLCERT: 传递一个包括PEM格局证书的字符串。
CURLOPT_SSLCERTPASSWD: 传递一个包括利用CURLOPT_SSLCERT证书必须的暗码。
CURLOPT_COOKIEFILE: 传递一个包括cookie数据的文件的名字的字符串。这个cookie文件可所以Netscape格局,或是堆存在文件中的HTTP作风的头。
CURLOPT_CUSTOMREQUEST: 当停止HTTP恳求时,传递一个字符被GET或HEAD利用。为停止DELETE或其它操作是无益的,更Pass a string to be used instead of GET or HEAD when doing an HTTP request. This is useful for doing or another, more obscure, HTTP request.
注重: 在确认你的办事器撑持号令先不要去如许做。
以下的选项请求一个文件描写(经由过程利用fopen()函数取得):
CURLOPT_FILE: 这个文件将是你放置传送的输入文件,默许是STDOUT.
CURLOPT_INFILE: 这个文件是你传送过去的输出文件。
CURLOPT_WRITEHEADER: 这个文件写有你输入的头局部。
CURLOPT_STDERR: 这个文件写有毛病而不是stderr。
实例代码: 已测
复制代码 代码以下:
<?php
@header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
@header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
// always modified
@header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
@header("Cache-Control: post-check=0, pre-check=0", false);
@header("Pragma: no-cache");
@header("content-type:text/html; charset=utf-8");
$url = 'http://s.jb51.net';
$querystring = $_SERVER["QUERY_STRING"];
$currentUrl = $_SERVER['SERVER_NAME'];
if($querystring != '') $querystring = $querystring . "&";
$querystring = $querystring . "SiteURL=" . $currentUrl;
if($querystring != '')
{
$url = $url . "?" . $querystring;
}
$ch = curl_init();
$timeout = 60; // set to zero for no timeout
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$handles = curl_exec($ch);
//上面是交换,可以联合办事器伪静态设置
$handles = preg_replace("/\?page=(+)&categoryId=(+)/i","/fenlei/category-$1-$2.html",$handles);
$handles = preg_replace("/\?categoryId=(+)/i","/fenlei/category--$1.html",$handles);
$handles = preg_replace("/\?page=(+)/i","/fenlei/category-$1.html",$handles);
$handles = preg_replace("/infodetail\.aspx\?ID=(+)/i","/fenlei/$1.html",$handles);
$handles = str_replace("infolist.aspx","/fenlei/index.html",$handles);
$handles = str_replace("unionlist.aspx","unionlist.html",$handles);
echo $handles;
?>
用C语言重新编写,包括可以访问数据库。他将这些程序和一些表单直译器整合起来,称为 PHP/FI。PHP/FI 可以和数据库连接,产生简单的动态网页程序。 php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会) 真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎, 使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的 写的比较杂,因为我也是个新手,不当至于大家多多指正。 首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。 使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的 有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。 兴趣是最好的老师,百度是最好的词典。 本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。 如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域, 个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。 小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。 为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。 本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。 如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域, 作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。 学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql 环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。 我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
页:
[1]