目前我所了解到的在php后台中,用php模拟浏览器访问网址的方法有两种:

第一种:模拟GET请求:file_get_contents($url)

通过php内置的 file_get_contents 函数可以模拟浏览器访问网址的行为,取的结果就是那个网址所返回的所有东西(这种情况一般用于返回的是 xml 格式字符串或者 json 字符串)

第二种:模拟GET/POST请求:curl

curl 是 php 提供的内置函数,其功能非常强大,封装常用的http,soap,ftp等协议

微信主要通过其进行模拟POST请求

1)初始化curl

2)设置参数

3)执行curl

4)关闭句柄

示例代码:

1、初始化     $ch = curl_init()
2、设置参数 curl_setopt($ch,参数)
3、执行 curl_exec($ch)
4、关闭 curl_close($ch)
5、输出错误信息:curl_error($ch)

第2步设置时,常用参数

CURLOPT_URL  请求url

CURLOPT_RETURNTANSFER(1)捕获url响应信息,不输出

CURLOPT_HEADER(0或1) 设置请求头信息

CURLOPT_POST(1) 设置是否使用POST请求,1开启

CURLOPT_POSTFIELDS 设置传输的数据,数组

例子:

微信机器人:小黄鸡
<?php
header('Content-type:text/html;charset=utf-8');
$url = "http://www.xiaohuangji.com/ajax.php";
//1、初始化curl
$ch = curl_init();
//2、设置参数,参数1初始化$ch,参数2设置常量,参数3常量的值
//设置请求url网址
curl_setopt($ch,CURLOPT_URL,$url);
//捕获url响应信息不输出
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
//设置请求头信息
curl_setopt($ch,CURLOPT_HEADER,0);
//设置传输post数组
$data = array(
'para'=>'你是男的还是女的'
);
//设置开启POST请求
curl_setopt($ch,CURLOPT_POST,1);
//传输参数值
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
//3、执行curl
$output = curl_exec($ch);
//4、关闭句柄
curl_close($ch);
if($output === False) {
echo 'error:'.curl_error($ch);
}
echo $output;
?>

php -- php模拟浏览器访问网址的更多相关文章

  1. 第14.7节 Python模拟浏览器访问实现http报文体压缩传输

    一. 引言 在<第14.6节 Python模拟浏览器访问网页的实现代码>介绍了使用urllib包的request模块访问网页的方法.但上节特别说明http报文头Accept-Encodin ...

  2. Selenium 3 + BrowserMobProxy 2.1.4 模拟浏览器访问 (含趟坑)

    背景 Selenium 是一个Web自动化测试的组件,可基于WebDriver去控制弹出浏览器去做一系列Web点击或行为测试(当然也可以去做一些邪恶的事..),减少重复人工网页测试的开销.Browse ...

  3. 第14.6节 使用Python urllib.request模拟浏览器访问网页的实现代码

    Python要访问一个网页并读取网页内容非常简单,在利用<第14.5节 利用浏览器获取的http信息构造Python网页访问的http请求头>的方法构建了请求http报文的请求头情况下,使 ...

  4. HttpWebRequest 模拟浏览器访问网站

    最近抓网页时报错: 要么返回 The remote server returned an error: (442)要么返回: 非法访问,您的行为已被WAF系统记录! 想了想,就当是人家加了抓网页的东西 ...

  5. Java网络编程(模拟浏览器访问Tomcat服务器)

    程序运行结果: HTTP/1.1 404 Not FoundServer: Apache-Coyote/1.1Content-Type: text/html;charset=utf-8Content- ...

  6. java 实现模拟浏览器 访问网站

    一般的情况下我们都是使用IE或者Navigator浏览器来访问一个WEB服务器,用来浏览页面查看信息或者提交一些数据等等.所访问的这些页面 有的仅仅是一些普通的页面,有的需要用户登录后方可使用,或者需 ...

  7. Android 隐式意图 让用户选择一个浏览器访问网址

    Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(Uri.parse("h ...

  8. 黄聪:wordpress如何携带cookie模拟浏览器访问网站

    $args = array( 'user-agent' => 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, li ...

  9. python 模拟浏览器

    想用python模拟浏览器访问web的方法测试些东西,有哪几种方法呢? 一类:单纯的访问web,不解析其js,css等. 1. urllib2 #-*- coding:utf-8 -* import ...

随机推荐

  1. vs ComboBox显示多行

    ComboBox,Drop List Type添加了多个数据,但是编译出来点下来按钮,只有一行. 惆怅 然后搜了下发现有人说: 在资源里面点向下箭头,把数据区拉长一点 然后才发现,原来资源里的Comb ...

  2. axios 的应用

    vue更新到2.0之后,作者就宣告不再对vue-resource更新,而是推荐的axios,前一段时间用了一下,现在说一下它的基本用法. 首先就是引入axios,如果你使用es6,只需要安装axios ...

  3. Spring Boot 中使用WebJars

    WebJars能使Maven的依赖管理支持OSS的JavaScript库/CSS库,比如jQuery.Bootstrap等: WebJars是将Web前端Javascript和CSS等资源打包成Jav ...

  4. ajax实现返回数据是html类型的跨域问题

    $.ajax({            url : _url,            type : 'GET',            dataType : 'html',            xh ...

  5. js 去掉html标签

    方法一: /// <summary> /// 去除HTML标记 /// </summary> /// <param name="NoHTML"> ...

  6. idea 换行设置

  7. Docker Dockerfile 基本结构详解

    dockerfike快速创建自定义的Docker镜像 一.目录 1.docker典型结构 2.指令介绍 3.创建docker镜像 二.结构 DockerFile分为四部分组成:基础镜像信.维护者信息. ...

  8. Android开发(九)——ViewFlipper实现图片轮播

    图片轮播的实现方法有很多,主要有View.ViewFilpper.ViewFilpper系统自带的一个多页面管理控件,它可以实现子界面的自动切换. 首先 需要为ViewFlipper加入View (1 ...

  9. css优化建议

    1.不要使用过小的图片做背景平铺.这就是为何很多人都不用 1px 的原因,这才知晓.宽高 1px 的图片平铺出一个宽高 200px 的区域,需要 200*200=40, 000 次,占用资源. 2.无 ...

  10. 如何搭建iOS项目基本框架

    今天我们来谈谈如何搭建框架,框架需要做一些什么. 第一步:找到我们的目标我们的目标是让其他开发人员拿到手后即可写页面,不再需要考虑其他的问题. 第二步:我们需要做哪些东西各位跟着我一步一步来进行. 假 ...