PHP中的获取远程内容和自动化

CURL的底层实现是一个命令行工具,用于远程文件或资源传输,它支持FTP/FTPS、HTTP/HTTPS、SCP/SFTP、Telnet、DICT和FILE/LDAP协议。包括HTTPS认证,HTTP的POST和PUT方式通讯,FTP上传,基于表单的上传,代理服务器及Cookies验证,HTTP认证(包括基本认证、加密认证等),文件的断点续传,HTTP代理管道。

CURL的主要用途就是命令行的自动化工具,如模拟一个使用者在浏览器端访问一个网站,自动登陆,或者自动提取网页中的内容或二进制文件或数据。

Libcurl是一个开放源代码的软件,它遵守MIT协议,它相当于一个API库,用户可以单独打包到自己的应用程序中。

在PHP中,Libcurl已经被捆绑到PHP的标准协议中,与PHP5标准发行包一同发布。

首先需要在php.ini 中打开php_curl.php或php_curl.so的扩展:extension=php_curl.dll

//UNIX环境下的文件扩展库名为curl.so

毫无疑问,CURL的功能是丰富且强大的,下面我给大家举一些使用的功能案例。

1. 获取远程网页内容

 

2. 下载远端文件

 

3. 使用表单自动登陆

使用带Cookie的GET表单登陆
在一些登陆表单中,需要发送Cookie内容才能实现正确登陆,使用CURL非常容易实现。

4. POST方法的表单登陆

特别要注意,POST的数据要经过urlencode的编码。

其实模拟登陆同样可以使用Snoopy类来轻松实现,在编码时更加简洁方便,我会在下一篇文章给大家介绍Snoopy的使用功能。