仓酷云

标题: PHP编程:PHP的cURL库功效简介:抓取网页,POST数... [打印本页]

作者: 愤怒的大鸟    时间: 2015-2-3 23:30
标题: PHP编程:PHP的cURL库功效简介:抓取网页,POST数...
一些真正的强人总会搞出新玩意来丢给你,你不学就落后了,也印证了前人的经验,果然是学无止境啊!     
  利用PHP的cURL库可以复杂和无效地去抓网页。你只需求运转一个剧本,然后剖析一下你所抓取的网页,然后就能够以法式的体例失掉你想要的数据了。不管是你想从从一个链接上取局部数据,或是取一个XML文件并把其导入数据库,那怕就是复杂的获得网页内容,cURL 是一个功效壮大的PHP库。本文次要讲述假如利用这个PHP库。
  启用 cURL 设置
  起首,咱们得先要肯定咱们的PHP是不是开启了这个库,你可以经由过程利用php_info()函数来失掉这一信息。
  1. ?php phpinfo(); ?
复制代码
假如你可以在网页上看到上面的输入,那末暗示cURL库已被开启。
  假如你看到的话,那末你需求设置你的PHP并开启这个库。假如你是在Windows平台下,那末十分复杂,你需求改一改你的php.ini文件的设置,找到php_curl.dll,并作废后面的分号正文就好了。以下所示:
  1. //作废
    下在的正文
    extension=php_curl.dll
复制代码
假如你是在Linux上面,那末,你需求从头编译你的PHP了,编纂时,你需求翻开编译参数——在configure号令上加上“–with-curl” 参数。
  一个小示例
  假如一切停当,上面是一个小例程:
  ?php
// 初始化一个 cURL 对象
$curl = curl_init();
  // 设置你需求抓取的URL
curl_setopt($curl, CURLOPT_URL, 'http://cocre.com');
  // 设置header
curl_setopt($curl, CURLOPT_HEADER, 1);
  // 设置cURL 参数,请求了局保留到字符串中仍是输入到屏幕上。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  // 运转cURL,恳求网页
$data = curl_exec($curl);
  // 封闭URL恳求
curl_close($curl);
  // 显示取得的数据
var_dump($data);
  若何POST数据
  下面是抓取网页的代码,上面则是向某个网页POST数据。假定咱们有一个处置表单的网址http://www.example.com/sendSMS.php,其可以承受两个表单域,一个是德律风号码,一个是短信内容。
  1. ?php $phoneNumber = '13912345678'; $message = 'This message was generated by curl and php'; $curlPost = 'pNUMBER=' . urlencode($phoneNumber) . '&MESSAGE=' . urlencode($message) . '&SUBMIT=Send'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://www.example.com/sendSMS.php'); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost); $data = curl_exec(); curl_close($ch); ?
复制代码
从下面的法式咱们可以看到,利用CURLOPT_POST设置HTTP协定的POST办法,而不是GET办法,然后以CURLOPT_POSTFIELDS设置POST的数据。
  关于代办署理办事器
  上面是一个若何利用代办署理办事器的示例。请注重个中高亮的代码,代码很复杂,我就不必多说了。
  1. ?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://www.example.com'); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1); curl_setopt($ch, CURLOPT_PROXY, 'fakeproxy.com:1080'); curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:password'); $data = curl_exec(); curl_close($ch); ?
复制代码
关于SSL和Cookie
  关于SSL也就是HTTPS协定,你只需求把CURLOPT_URL毗连中的http://酿成https://就能够了。固然,还有一个参数叫CURLOPT_SSL_VERIFYHOST可以设置为验证站点。
  关于Cookie,你需求懂得上面三个参数:
  CURLOPT_COOKIE,在当面的会话中设置一个cookie
  CURLOPT_COOKIEJAR,当会话停止的时分保留一个Cookie
  CURLOPT_COOKIEFILE,Cookie的文件。
  HTTP办事器认证
  最初,咱们来看一看HTTP办事器认证的情形。
  ?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt(CURLOPT_USERPWD, '[username]:[password]')
  $data = curl_exec();
curl_close($ch);
?
  关于其它更多的内容,请参看相干的cURL手册。
大家如果能懂得“熟能生巧”的道理也就明白了这并不是浪费时间,同时这也可以减轻板主的负担,让他们有时间去处理更难的问题。
作者: 若天明    时间: 2015-2-3 23:55
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。
作者: 第二个灵魂    时间: 2015-2-10 05:00
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
作者: 兰色精灵    时间: 2015-2-14 11:45
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
作者: 再见西城    时间: 2015-2-18 00:20
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
作者: 不帅    时间: 2015-3-2 03:38
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
作者: 谁可相欹    时间: 2015-3-4 19:49
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
作者: 冷月葬花魂    时间: 2015-3-14 12:07
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
作者: 爱飞    时间: 2015-3-15 15:20
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
作者: 再现理想    时间: 2015-3-17 10:59
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
作者: 小魔女    时间: 2015-3-19 08:13
其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。
作者: 分手快乐    时间: 2015-3-21 10:34
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
作者: 山那边是海    时间: 2015-3-26 15:27
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
作者: 仓酷云    时间: 2015-3-31 23:53
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
作者: 柔情似水    时间: 2015-4-3 01:34
本文当是我的笔记啦,遇到的问题随时填充
作者: 愤怒的大鸟    时间: 2015-4-3 14:00
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
作者: 莫相离    时间: 2015-4-6 09:53
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
作者: 透明    时间: 2015-4-11 15:41
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
作者: 深爱那片海    时间: 2015-4-13 21:25
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2