首页 > 编程语言 >PHP通用请求函数sendCurl

PHP通用请求函数sendCurl

时间:2023-08-19 11:46:32浏览次数:48  
标签:ch 请求 sendCurl curl PHP data method CURLOPT setopt

function sendCurl($url, $data = null, $method = 'POST') {
	$method = strtoupper($method);
	$start_wdmcurl_time = microtime(true);

	$header = array(' application/x-www-form-urlencoded');
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_FAILONERROR, false);
	// https 请求
	if (strlen($url) > 5 && strtolower(substr($url, 0, 5)) == "https") {
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
	}
	if ($method == 'GET') {
		if ($data && is_array($data) && count($data) > 0) {
			$url .= "?" . http_build_query($data);
		}
		curl_setopt($ch, CURLOPT_URL, $url);
	} elseif ($method == 'POST') {
		curl_setopt($ch, CURLOPT_POST, 1);
		curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
		if (is_array($data) && count($data) > 0) {
			curl_setopt($ch, CURLOPT_POST, true);
			$isPostMultipart = false;
			foreach ($data as $k => $v) {
				if ('@' == substr($v, 0, 1)) {
					$isPostMultipart = true;
					break;
				}
			}
			unset($k, $v);
			if ($isPostMultipart) {
				curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
			} else {
				curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
			}
		}
	} elseif (in_array($method, ['PUT', 'DELETE', 'PATCH'])) {
		curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
		curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
	}
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
	$reponse = curl_exec($ch);
	curl_close($ch);
	return $reponse;
}

标签:ch,请求,sendCurl,curl,PHP,data,method,CURLOPT,setopt
From: https://www.cnblogs.com/sunr/p/17642237.html

相关文章

  • PHP反序列化笔记(二)
    漏洞原理序列化和反序列化本身没有问题,但是如果反序列化的内容是用户可以控制的,且后台不正当的使用了PHP中的魔法函数,就会导致安全问题。当传给unserialize()的参数可控时,可以通过传入一个精心构造的序列化字符串,从而控制对象内部的变量甚至是函数。存在漏洞的思路:一个类用于临时将......
  • Linux 下php7.2安装mysql扩展
    环境CPU:x86_64OS:CentOSLinuxrelease7.5php:7.2.34pdo_mysql:7.2.34安装进入安装包mysql扩展目录进入到php安装包(php-7.2.34.tar.gz)的解压目录php-7.2.34中的扩展目录,准备进行编译cd/opt/php-7.2.34/ext/pdo_mysql编译安装mysql扩展这个过程3步执行:--with......
  • php 依赖
      yuminstall-ygccgcc-c++makezlibzlib-develpcrepcre-devellibjpeglibjpeg-devellibpnglibpng-develfreetypefreetype-devellibxml2libxml2-develglibcglibc-develglib2glib2-develbzip2bzip2-develncursesncurses-develcurlcurl-devele2fspr......
  • 直播平台源码之实现网络请求的方法
    直播平台源码开发中如果你不会网络请求,那么你开发的应用软件就是一具没有灵魂的枯骨。当你下载完软件后会要求你给与权限,否则就没办法使用,网络请求也需要对应的权限,否则就没法进行联网操作。在直播平台源码开发中首先在AndroidManifest.xml文件中添加网络请求权限要在manifest......
  • php的password_verify 和 password_hash密码验证
    password_hash() 使用足够强度的单向散列算法创建密码的散列(hash)。当前支持的算法:PASSWORD_DEFAULT -使用bcrypt算法(PHP5.5.0默认)。注意,该常量会随着PHP加入更新更高强度的算法而改变。所以,使用此常量生成结果的长度将在未来有变化。因此,数据库里储存结果的列可......
  • PHP正则表达式匹配教程
    一、什么是正则表达式正则表达式是一种用于搜索、匹配、替换某种文本的字符串模式,常用于处理文本数据、校验输入数据等。在PHP中,可以使用preg系列函数(preg_match、preg_replace等)处理正则表达式。二、正则表达式语法正则表达式语法包含了一些特定的字符和语法规则,常用的语法规则......
  • php发送小程序订阅消息
    微信文档:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/subscribe-message.html#%E8%AE%A2%E9%98%85%E6%B6%88%E6%81%AF%E8%AF%AD%E9%9F%B3%E6%8F%90%E9%86%921.小程序后台创建消息模板 2.小程序用户点击按钮订阅dingyue(){//console.log('订阅......
  • apache开启php的伪静态模式,出现No input file specified
    Thinkphp教程中提供的APACHE伪静态模式出现Noinputfilespecified,打开.htaccess在RewriteRule后面的index.php教程后面添加一个“?”完整代码如下.htaccessRewriteEngineonRewriteCond$1!^(index.php|images|robots.txt)RewriteRule^(.*)$/index.php?/$1[QSA,PT,L......
  • MySQL客户端工具 phpMyAdmin MySQL Workbench HeidiSQL Sequel Pro DBeaver
    MySQL是一种流行的关系型数据库管理系统,它被广泛用于Web应用程序和企业级应用程序的开发中。目前,市面上有不少好用的MySQL客户端工具,如Navicat,SQLyog等。但这些产品虽然功能强大,却都是收费的,而且费用还不低。幸运的是,收费产品并不是你的唯一选择,目前也有不少开源的工具。如果你不想......
  • 再也不用写请求HttpHelper了,HttpClient帮助你
    前言在C#7.1之后,net推出HttpClient类代替WebRequest,HttpWebRequest,ServicePoint,andWebClient,先来看下他们在以前的作用HttpWebRequest和HttpWebResponse类是用于发送和接收HTTP数据的一种方式ServicePoint提供HTTP连接的连接管理WebClient提供用于将数据发送到由......