学习使用curl采集curl使用方法

yipeiwu_com6年前PHP代码库
复制代码 代码如下:

<?php
$cookie_jar = tempnam('./tmp','cookie');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'登陆地址');
curl_setopt($ch, CURLOPT_POST, 1);
$request = 'username=xxx&pwd=xxx';
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);//传递数据
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar);//把返回来的cookie信息保存在$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, '查看地址');
curl_setopt($ch2, CURLOPT_HEADER, false);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch2, CURLOPT_COOKIEFILE, $cookie_jar);
$orders = curl_exec($ch2);

echo $orders;
curl_close($ch2);// 实践证明很稳定:)
?>

先在本机测试,在php.ini中去掉了extension=php_curl.dll前面的;,查看一下phpinfo(),并没有curl。
查了下文档,
复制代码 代码如下:

Note to Win32 Users: In order to enable this module on a Windows environment, libeay32.dll and ssleay32.dll must be present in your PATH.

将libeay32.dll 和ssleay32.dll复制到system32下,重启apache,刷新phpinfo(),看到了curl。
引用
复制代码 代码如下:

cURL support enabled
cURL Information libcurl/7.16.0 OpenSSL/0.9.8d zlib/1.2.3

本机测试顺利通过,再去服务器上测试。原没装curl,只好重新编译php。
在原编译参数后面加了--with-curl=/usr/local/curl。
我这次的配置是:
复制代码 代码如下:

./configure '--prefix=/usr/local/php5' '--with-apxs2=/usr/local/apache2/bin/apxs' '--with-mysql=/usr/local/mysql' '--with-gd=/usr/local/gd' '--with-zlib' '--with-png' '--with-jpeg-dir=/usr/local/jpeg' '--with-freetype-dir=/usr/local/freetype' '--enable-sockets' '--with-iconv' '--enable-mbstring' '--enable-track-vars' '--enable-force-cgi-redirect' '--with-config-file-path=/usr/local/php5/etc' --with-curl=/usr/local/curl

很快OK。phpinfo显示
引用
复制代码 代码如下:

CURL support enabled
CURL Information libcurl/7.12.1 OpenSSL/0.9.7a zlib/1.2.3 libidn/0.5.6

感觉挺好用的:)

相关文章

PHPExcel导出2003和2007的excel文档功能示例

本文实例讲述了PHPExcel导出2003和2007的excel文档功能。分享给大家供大家参考,具体如下: require_once 'common/excel/PHPExcel.p...

php如何实现不借助IDE快速定位行数或者方法定义的文件和位置

php 如何实现不借助IDE快速定位行数或者方法定义的文件和位置 借助了ReflectionMethod的一些特性,可以快速获得函数或者方法是在哪个文件的什么位置定义的,对于调试没有文档...

PHP计划任务、定时执行任务的实现代码

不知道能程序的性能会不会影响很大! 复制代码 代码如下: ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行. set_time_limit(0);// 通...

2款PHP无限级分类实例代码

本文章总结了两款PHP无限级分类实现程序代码,有需要学习的朋友可参考一下。 主要思路:首先看第三行和第四行,父类ID(PARENTID)的值是1,表示属于id=1这个类的子类,而,一,二...

php异步:在php中使用fsockopen curl实现类似异步处理的功能方法

PHP从主流来看,是一门面向过程的语言,它的最大缺点就是无法实现多线程管理,其程序的执行都是从头到尾,按照逻辑一路执行下来,不可能出现分支,这一点是限制php在主流程序语言中往更高级的语...