·您现在的位置: 江北区云翼计算机软件开发服务部 >> 文章中心 >> 网站建设 >> 网站建设开发 >> php网站开发 >> CURL传输与获取功能

CURL传输与获取功能

作者:佚名      php网站开发编辑:admin      更新时间:2022-07-23
CURL传输与获取功能

什么是CURL? 利用URL语法爱命令行方式下工作的文件传输工具。它支持很多协议。它支持认证功能。php中常用都实现更复杂的传输功能。 实现的功能: 1、实现远程获取和采集内容 2、实现PHP 网页版的FTP上传下载 3、实现模拟登陆:去一个邮件系统,curl可以模拟cookies 4、实现接口对接(API),数据传输等:通过一个平台发送短信啊,抓取和传递所传输的信息。 5、实现模拟Cookie等:登陆的状态下才可以操作一些属性。

如何使用CURL功能:默认情况加PHP是不支持CURL的,需要在php.ini中开启该功能;extension=php_curl.dll前面的分号去掉 1 整个操作过程中第一步是用cur_init()函数进行初始化 $curl = curl_init(‘www.php100.com’) 2.用curl_setopt()函数进行设置选项。 3.设置后,进行执行事务 curl_exec($curl); 4最后关闭curl_close();

使用PHP CURL实现传输和获取功能(post传输方式):获取远程网页数据$user = "admin";$pass = "admin100";$curlPost = "user=$user&pass=$pass";$ch = curl_init(); //初始化一个CURL对象curl_setopt($ch, CURLOPT_URL, "http://localhost/edu/login.php");//设置你所需要抓取的URLcurl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);//设置curl参数,要求结果是否输出到屏幕上,为true的时候是不返回到网页中假设上面的0换成1的话,那么接下来的$data就需要echo一下。curl_setopt($ch, CURLOPT_POST, 1);//post提交curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);

$data = curl_exec($ch);//运行curl,请求网页。curl_close($ch);实现远程模拟登陆最基础部分。curl也还是需要配置用户名和密码的,只不过是被浏览器隐藏了。============================================================================curl模拟登陆

模拟登陆:就是不登陆到php100的论坛,也能查看到相应的信息。 分析登陆字段--->登陆后保留cookie状-->读取cookie并跳转到相关页-->抓取数 1、模拟登陆后创建一个文件保存cookie内容 2、通过读取生成的cookie内容模拟用户登陆状态 3、到相关页面获取所需内容

tempname创建一个临时文件tempnam() 函数创建一个具有唯一文件名的临时文件。 若成功,则该函数返回新的临时文件名。若失败,则返回 false。 tempnam(dir,PRefix) 参数 描述 dir 必需。规定创建临时文件的目录。 prefix 必需。规定文件名的开头。相当于,fopen  fwirte  fclose 它可以返回一个布尔值。使用第三方来登陆你的QQ、msn是很危险的,因为它可以记录你的登录状态,抓取你的用户名和密码。

使用CURL模拟登陆到PHP100论坛

1、分析登陆所需input框字段名和所需字段数量

2、保存cookie 模拟登陆后获取会员金币数量

code:

<?php

//初始化一个 cURL 对象$curl = curl_init();

//设置你需要抓取的URLcurl_setopt($curl, CURLOPT_URL, "http://www.baidu.com");

//设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。curl_setopt($curl, CURLOPT_RETURNTRANSFER, 0);

//运行cURL,请求网页$data = curl_exec($curl);

//关闭URL请求curl_close($curl);

$user = "admin";$pass = "admin100";$curlPost = "user=$user&pass=$pass";$ch = curl_init();curl_setopt($ch, CURLOPT_URL, "http://localhost/curl/login.php");curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);$data = curl_exec($ch);curl_close($ch);

?>

<?phpif($_POST['user']=="admin"){echo "<script>alert('成功')</script>";}else{echo "<script>alert('失败')</script>";}//print_r($_POST);?>

=====

模拟登陆代码

pw_php100.php<?php $cookie_file=tempnam('./temp','cookie'); $login_url="http://bbs.php100.com/login.php"; $post_fields="cktime=3600&step=2&pwuser=php100&pwpwd=11111"; $ch=curl_init($login_url); curl_setopt($ch, CURLOPT_URL, "http://www.baidu.com"; curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields); $data = curl_exec($ch); curl_close($ch);

$url="http://bbs.php100.com/userpay.php";$ch=curl_init($url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); $contents = curl_exec($ch); preg_match("/<li>金钱:<\/li>/",$contents,$arr); echo $arr[1]; curl_close($ch);

?>

======

login.php

<?php

print_r($_POST);

?>

====================

curl.php<?php

$curlPost = "user=$user&pass=$pass";$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://localhost/edu/login.php");curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);$data = curl_exec($ch);curl_close($ch);?>