首页 php教程 php手册 PHP Request工具类

PHP Request工具类

Jun 06, 2016 pm 07:35 PM
http php request 使用 工具 进行

利用PHP进行HTTP请求是很常见的事情了,大家都知道用CURL来进行操作,但是CURL函数使用起来配置是很多的,很多人往往只有用到一小部分常用选项,这里我做了一个封装 主要功能 POST,GET COOKIE支持 URLENCODE支持(针对GET请求) 由于是静态方法,直接::调用即

利用PHP进行HTTP请求是很常见的事情了,大家都知道用CURL来进行操作,但是CURL函数使用起来配置是很多的,很多人往往只有用到一小部分常用选项,这里我做了一个封装
主要功能
POST,GET
COOKIE 支持
URLENCODE 支持(针对GET请求)

由于是静态方法,直接 :: 调用即可
<?php

/**
 * @version 1.0
 * @date 2014-08-11
 * @author 十七号 <xialeistudio@gmail.com>
 * @license MIT
 * Class Request 网络工具类
 */
class Request
{
	/**
	 * HTTP GET 请求
	 * @param string $url 请求地址
	 * @param array $data 请求数据
	 * @param null $cookie COOKIE
	 * @param null $cookiefile COOKIE 请求所用的COOKIE文件位置
	 * @param null $cookiesavepath 请求完成的COOKIE保存位置
	 * @param bool $encode 是否对请求参数进行 urlencode 处理
	 * @return mixed
	 * @throws Exception
	 */
	public static function get($url, $data = array(), $cookie = null, $cookiefile = null,$cookiesavepath = null, $encode = true)
	{
		//初始化句柄
		$ch = curl_init();
		//处理GET参数
		if(count($data)>0){
			$query = $encode?http_build_query($data):urldecode(http_build_query($data));
			curl_setopt($ch, CURLOPT_URL, $url . '?' . $query);
		}else{
			curl_setopt($ch, CURLOPT_URL, $url);
		}
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36');
		//设置cookie
		if (isset($cookie)) curl_setopt($ch, CURLOPT_COOKIE, $cookie);
		//设置cookie请求文件
		if (isset($cookiefile)){
			if(!is_file($cookiefile)) throw new Exception('Cookie文件不存在');
			curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiefile);
		}
		//设置cookie保存路径
		if(isset($cookiesavepath)) curl_setopt($ch,CURLOPT_COOKIEJAR,$cookiesavepath);
		//执行请求
		$resp = curl_exec($ch);
		//关闭句柄,释放资源
		curl_close($ch);
		return $resp;
	}

	/**
	 * HTTP POST 请求
	 * @param string $url 请求地址
	 * @param array $data 请求数据
	 * @param null $cookie 请求COOKIE
	 * @param null $cookiefile 请求时cookie文件位置
	 * @param null $cookiesavepath 请求完成的COOKIE保存位置
	 * @return string
	 * @throws Exception
	 */
	public static function post($url, $data = array(), $cookie = null, $cookiefile = null,$cookiesavepath = null)
	{
		//初始化请求句柄
		$ch = curl_init();
		//参数设置
		curl_setopt($ch, CURLOPT_URL, $url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($ch,CURLOPT_POST,1);
		curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
		curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36');
		//cookie设置
		if (isset($cookie)) curl_setopt($ch, CURLOPT_COOKIE, $cookie);
		//请求cookie设置
		if (isset($cookiefile)){
			if(!is_file($cookiefile)) throw new Exception('Cookie文件不存在');
			curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiefile);
		}
		//设置cookie保存路径
		if(isset($cookiesavepath)) curl_setopt($ch,CURLOPT_COOKIEJAR,$cookiesavepath);
		$resp=curl_exec($ch);
		curl_close($ch);
		return $resp;
	}
}
登录后复制
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
2 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

在PHP API中说明JSON Web令牌(JWT)及其用例。 在PHP API中说明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

Avue-crud行编辑模式下如何手动触发单元格的onBlur事件? Avue-crud行编辑模式下如何手动触发单元格的onBlur事件? Apr 04, 2025 pm 02:00 PM

在Avue组件库中实现Avue-crud行编辑的onBlur事件手动触发Avue-crud组件提供了便捷的行内编辑功能,但有时我们需要�...

Gitee Pages静态网站部署失败:单个文件404错误如何排查和解决? Gitee Pages静态网站部署失败:单个文件404错误如何排查和解决? Apr 04, 2025 pm 11:54 PM

GiteePages静态网站部署失败:404错误排查与解决在使用Gitee...

如何利用AI工具在React   Vite项目中快速搭建前台页面? 如何利用AI工具在React Vite项目中快速搭建前台页面? Apr 04, 2025 pm 01:45 PM

如何在后端开发中快速搭建前台页面?作为一个拥有三四年经验的后端开发者,掌握了基础的javascript、css和html�...

如何用pnpm代替npm创建React应用? 如何用pnpm代替npm创建React应用? Apr 04, 2025 pm 06:45 PM

关于使用pnpm代替npm创建React应用在使用npx...

在Chrome DevTools中如何有效修改并重放请求的Cookies? 在Chrome DevTools中如何有效修改并重放请求的Cookies? Apr 04, 2025 pm 05:48 PM

在ChromeDevTools中如何有效修改并重放请求的Cookies在使用Chrome...

如何用浏览器内嵌脚本自动化网页元素操作和数值计算? 如何用浏览器内嵌脚本自动化网页元素操作和数值计算? Apr 04, 2025 pm 12:09 PM

网页自动化与数值计算:基于浏览器内嵌脚本的实现本文将探讨如何使用浏览器内嵌脚本实现网页元素操作和数...

如何使用JavaScript插件实现页面固定和元素独立移动的效果? 如何使用JavaScript插件实现页面固定和元素独立移动的效果? Apr 04, 2025 pm 12:51 PM

实现滚动条与元素独立移动的页面固定效果在网页设计中,有时我们需要实现一个特殊的效果,即当滚动条滚动...

See all articles