### :-: 一、`file()` 把整个文件读入一个数组中
**参数**|**描述**
---|---
path| 必需。规定要读取的文件。
include_path| 可选。如果也想在 include_path 中搜寻文件的话,可以将该参数设为 "1"。
context| 可选。规定文件句柄的环境。是一套可以修改流的行为的选项。若使用 null,则忽略。
> 示例:
```php
//抓取的网址
$url = 'http://news.people.com.cn/210801/211150/index.js';
//将读取内容存在数组中
$arr = file($url);
print_r($arr);
```
---
### :-: 二、`file_get_contents()` 把整个文件读入一个字符串中
**参数**|**描述**
---|---
path| 必需。规定要读取的文件。
include_path| 可选。如果也想在 include_path 中搜寻文件的话,可以将该参数设为 "1"。
context| 可选。规定文件句柄的环境。是一套可以修改流的行为的选项。若使用 null,则忽略。
start| 可选。规定在文件中开始读取的位置。该参数是 PHP 5.1 新加的。
max_length| 可选。规定读取的字节数。该参数是 PHP 5.1 新加的。
> 示例:
```php
//抓取的网址
$url = 'http://news.people.com.cn/210801/211150/index.js';
//将读取内容存在字符串中
$arr = file_get_contents($url);
echo $arr;
```
### :-: 三、`curl()` libcurl库
**常用函数**|**描述**
---|---
curl_init()| 初始化 cURL 会话
curl_setopt()| 设置 cURL 传输选项
curl_exec()| 执行 cURL 会话
curl_errno()| 返回最后一次的错误代码
curl_close()| 关闭 cURL 会话
> 需要重点说下:
> curl_setopt() 设置 cURL 传输选项
> curl 可以post提交
> curl 可以获取https
**curl_setopt 参数**|**描述**
---|---
ch| 由 curl_init() 返回的 cURL 句柄
option| 需要设置的CURLOPT_XXX选项。(curl的关键部分,看下面示例)
vlues| 设置值
> 示例:
```php
header("Content-Type: text/html;charset=utf8");
// url可以是文件,可以是pc页面,也可以是接口
// $url = 'https://mat1.gtimg.com/pingjs/ext2020/configF2017/5a9cf828.js';
$url = 'http://news.cctv.com';
// $url = 'https://pacaio.match.qq.com/irs/rcd?cid=146&token=49cbb2154853ef1a74ff4e53723372ce&ext=ent&page=2';
$ch = curl_init(); // 创建一个新cURL资源
curl_setopt($ch, CURLOPT_URL, $url); // 设置URL
curl_setopt($ch, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);// 爬取重定向页面
curl_setopt($ch, CURLOPT_AUTOREFERER, 1); // 自动设置Referer,防止盗链
curl_setopt($ch, CURLOPT_POST, 1); // 发送一个常规的Post请求
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);// Post提交的数据包
curl_setopt($ch, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 要求结果保存到字符串中还是输出到屏幕上
// 禁用SSL证书的验证,就可以解决HTPPS获取不到的问题
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);// 对认证证书来源的检查
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);// 从证书中检查SSL加密算法是否存在
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); // 默认值,让 cURL 自己判断使用哪个版本。 (强制使用 HTTP/1.1)。
curl_setopt($ch, CURLOPT_USERAGENT, 'Data'); // 在HTTP请求中包含一个"User-Agent: "头的字符串。
$html = curl_exec($ch); // 运行cURL,请求URL,把结果复制给变量
if(curl_errno($ch)){
echo 'Errno'.curl_error($curl); //捕抓异常
}
curl_close($ch); // 关闭cURL连接
print_r($html);
```
- 序言
- PHP基础
- 认识PHP
- 环境安装
- PHP语法
- 流程控制
- PHP数组
- PHP函数
- PHP类与对象
- PHP命名空间
- PHP7新特性
- PHP方法库
- PHP交互
- 前后端交互
- 项目常规开发流程
- MySQL数据库
- 会话控制
- Ajax分页技术
- 细说函数
- 类与对象
- 对象进阶
- 类与对象进阶
- OOP面向对象
- 设计模式
- 路由与模板引擎
- 异常类
- PHP爬虫
- PHP抓取函数
- PHP匹配函数
- 正则表达式
- PHP字符串函数
- 抓取实战
- PHP接口
- 了解接口
- PHP插件
- PHPSpreadsheet
- ThinkPHP6
- 安装
- 架构
- 数据库
- 数据库操作
- 视图
- 模版
- 模型
- 杂项
- 命令行
- 交互
- 微信小程序
- 介绍
- 配置
- 组件
- 交互
- API
- 其他知识
- 百度小程序
- 介绍
- 配置
- 组件
- 交互
- API
- 其他知识
- Linux
- 服务器上线流程
- 安装svn
- MySQL
- 认识MySQL
- MySQL函数
- 杂项
- composer依赖管理工具