小魔女 发表于 2015-2-16 00:24:09

PHP编程:php下利用curl摹拟用户上岸的代码

不断巩固,摸透大部分PHP常用函数,并可理解OOP,MYSQL优化,以及模板   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
 $cookie_jar = tempnam(‘./tmp',‘cookie');
 $ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, ‘http://www.QQView.com');
curl_setopt( $ch, CURLOPT_POST, 1);
 $request = ‘email_address=&password=&action=';
curl_setopt( $ch, CURLOPT_POSTFIELDS,  $request);
//把前往来的cookie信息保留在 $cookie_jar文件中
curl_setopt( $ch, CURLOPT_COOKIEJAR,  $cookie_jar);
//设定前往的数据是不是主动显示
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);
//设定是不是显示头信息
curl_setopt( $ch, CURLOPT_HEADER, false);
//设定是不是输入页面内容
curl_setopt( $ch, CURLOPT_NOBODY, false);
curl_exec( $ch);
curl_close( $ch);
//get data after login
 $ch2 = curl_init();
curl_setopt( $ch2, CURLOPT_URL, ‘http://*****');
curl_setopt( $ch2, CURLOPT_HEADER, false);
curl_setopt( $ch2, CURLOPT_RETURNTRANSFER, 1);
curl_setopt( $ch2, CURLOPT_COOKIEFILE,  $cookie_jar);
 $orders = curl_exec( $ch2);
echo ‘<pre>';
echo strip_tags( $orders);
echo ‘</pre>';
curl_close( $ch2);
?>
看看西,人家这个编论坛,那个CMS,还有那啥CRM,我啥时候写一个呢?

乐观 发表于 2015-2-16 00:53:52

学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql

活着的死人 发表于 2015-3-3 11:46:37

使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的

若天明 发表于 2015-3-6 11:07:20

本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。

仓酷云 发表于 2015-3-11 05:08:04

遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。

因胸联盟 发表于 2015-3-16 15:09:41

使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的

莫相离 发表于 2015-3-17 11:54:52

兴趣是最好的老师,百度是最好的词典。

若相依 发表于 2015-3-20 23:32:25

开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。

飘灵儿 发表于 2015-3-31 04:36:28

对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。

谁可相欹 发表于 2015-3-31 13:09:15

我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:

蒙在股里 发表于 2015-4-4 20:30:50

真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,

愤怒的大鸟 发表于 2015-4-16 07:13:23

建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。

小魔女 发表于 2015-4-26 08:10:13

作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。

简单生活 发表于 2015-4-30 11:46:15

曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线\\\\\\\'_\\\\\\\' ;

金色的骷髅 发表于 2015-7-10 09:08:50

建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。

老尸 发表于 2015-7-18 22:33:34

对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。

山那边是海 发表于 2015-7-18 22:35:01

基础有没有对学习php没有太大区别,关键是兴趣。

再见西城 发表于 2015-7-21 08:41:05

使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的

变相怪杰 发表于 2015-10-11 05:33:34

建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。

海妖 发表于 2015-10-17 12:58:03

爱上php,他也会爱上你。
页: [1]
查看完整版本: PHP编程:php下利用curl摹拟用户上岸的代码