仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1990|回复: 19
打印 上一主题 下一主题

[学习教程] PHP教程之PHP curl

[复制链接]
若天明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-16 00:23:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
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: 传递一个形如[username]:[password]作风的字符串,感化PHP去毗连。
CURLOPT_PROXYUSERPWD: 传递一个形如[username]:[password] 格局的字符串去毗连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=([0-9]+)&categoryId=([0-9]+)/i","/fenlei/category-$1-$2.html",$handles);
$handles = preg_replace("/\?categoryId=([0-9]+)/i","/fenlei/category--$1.html",$handles);
$handles = preg_replace("/\?page=([0-9]+)/i","/fenlei/category-$1.html",$handles);
$handles = preg_replace("/infodetail\.aspx\?ID=([0-9]+)/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 可以和数据库连接,产生简单的动态网页程序。
沙发
发表于 2015-2-16 00:50:09 | 只看该作者
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
精灵巫婆 该用户已被删除
板凳
发表于 2015-3-4 19:58:58 | 只看该作者
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
不帅 该用户已被删除
地板
发表于 2015-3-8 03:27:12 | 只看该作者
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
再现理想 该用户已被删除
5#
发表于 2015-3-12 14:04:00 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
兰色精灵 该用户已被删除
6#
发表于 2015-3-19 22:28:07 | 只看该作者
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
冷月葬花魂 该用户已被删除
7#
发表于 2015-3-24 09:40:01 | 只看该作者
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
admin 该用户已被删除
8#
发表于 2015-4-6 12:18:08 | 只看该作者
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
简单生活 该用户已被删除
9#
发表于 2015-4-7 00:14:24 | 只看该作者
兴趣是最好的老师,百度是最好的词典。
只想知道 该用户已被删除
10#
发表于 2015-4-8 04:26:21 | 只看该作者
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
活着的死人 该用户已被删除
11#
发表于 2015-4-14 05:25:10 | 只看该作者
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
透明 该用户已被删除
12#
发表于 2015-4-19 06:35:57 | 只看该作者
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
乐观 该用户已被删除
13#
发表于 2015-5-2 02:58:54 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
灵魂腐蚀 该用户已被删除
14#
发表于 2015-6-4 08:16:01 | 只看该作者
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
小妖女 该用户已被删除
15#
发表于 2015-6-9 17:33:05 | 只看该作者
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
爱飞 该用户已被删除
16#
发表于 2015-6-22 14:24:49 | 只看该作者
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
若相依 该用户已被删除
17#
发表于 2015-6-27 23:05:09 | 只看该作者
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
飘飘悠悠 该用户已被删除
18#
发表于 2015-7-13 20:30:37 | 只看该作者
学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
海妖 该用户已被删除
19#
发表于 2015-7-14 19:55:26 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
变相怪杰 该用户已被删除
20#
发表于 2015-7-14 20:51:20 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-3 07:21

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表