2021-11-18 09:57:04 +00:00
|
|
|
|
<?php
|
|
|
|
|
namespace app\service;
|
|
|
|
|
|
|
|
|
|
class Tool
|
|
|
|
|
{
|
|
|
|
|
//删除文件
|
|
|
|
|
public static function delFile($path)
|
|
|
|
|
{
|
|
|
|
|
if(!empty(trim($path))){
|
|
|
|
|
$realPath = app()->getRootPath() . ltrim($path, '/');
|
|
|
|
|
if (file_exists($realPath)) {
|
|
|
|
|
$info = pathinfo($realPath);
|
|
|
|
|
$source = $info['dirname'] . "/" . $info['filename'] . '*.' . $info['extension'];
|
|
|
|
|
foreach(glob($source) as $filename){
|
|
|
|
|
if(is_file($filename)){
|
|
|
|
|
unlink($filename);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
clearstatcache();// 清除缓存
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 删除目录下的所有文件和子目录
|
|
|
|
|
* 调用完毕后请用clearstatcache()清理缓存
|
|
|
|
|
*/
|
|
|
|
|
public static function removeByPath($path)
|
|
|
|
|
{
|
|
|
|
|
if(is_dir($path)) {
|
|
|
|
|
if($handle = @opendir($path)) {
|
|
|
|
|
while (($file = readdir($handle)) !== false){
|
|
|
|
|
if($file != '.' && $file != '..') {
|
|
|
|
|
$child = $path.'/'.$file;
|
|
|
|
|
is_dir($child) ? self::removeByPath($child) : @unlink($child);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
closedir($handle);
|
|
|
|
|
} elseif (is_file($path)) {
|
|
|
|
|
@unlink($path);
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//去除字符串空格
|
|
|
|
|
public static function trimSpace($str)
|
|
|
|
|
{
|
|
|
|
|
return str_replace(' ', '', trim($str));
|
|
|
|
|
}
|
2021-12-14 09:34:27 +00:00
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* CURL请求
|
|
|
|
|
* @param $url 请求url地址
|
|
|
|
|
* @param $method 请求方法 get post
|
|
|
|
|
* @param null $postfields post数据数组
|
|
|
|
|
* @param array $headers 请求header信息
|
|
|
|
|
* @param bool|false $debug 调试开启 默认false
|
|
|
|
|
* @return mixed
|
|
|
|
|
*/
|
|
|
|
|
static function httpRequest($url, $method = "post", $postfields = null, $headers = array(), $debug = false)
|
|
|
|
|
{
|
|
|
|
|
$method = strtoupper($method);
|
|
|
|
|
$ci = curl_init();
|
|
|
|
|
/* Curl settings */
|
|
|
|
|
curl_setopt($ci, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
|
|
|
|
|
curl_setopt($ci, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0");
|
|
|
|
|
curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 60); /* 在发起连接前等待的时间,如果设置为0,则无限等待 */
|
|
|
|
|
curl_setopt($ci, CURLOPT_TIMEOUT, 7); /* 设置cURL允许执行的最长秒数 */
|
|
|
|
|
curl_setopt($ci, CURLOPT_RETURNTRANSFER, true);
|
|
|
|
|
switch ($method) {
|
|
|
|
|
case "POST":
|
|
|
|
|
curl_setopt($ci, CURLOPT_POST, true);
|
|
|
|
|
if (!empty($postfields)) {
|
|
|
|
|
$tmpdatastr = is_array($postfields) ? http_build_query($postfields) : $postfields;
|
|
|
|
|
curl_setopt($ci, CURLOPT_POSTFIELDS, $tmpdatastr);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
curl_setopt($ci, CURLOPT_CUSTOMREQUEST, $method); /* //设置请求方式 */
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
$ssl = preg_match('/^https:\/\//i', $url) ? TRUE : FALSE;
|
|
|
|
|
curl_setopt($ci, CURLOPT_URL, $url);
|
|
|
|
|
if ($ssl) {
|
|
|
|
|
curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, FALSE); // https请求 不验证证书和hosts
|
|
|
|
|
curl_setopt($ci, CURLOPT_SSL_VERIFYHOST, FALSE); // 不从证书中检查SSL加密算法是否存在
|
|
|
|
|
}
|
|
|
|
|
curl_setopt($ci, CURLOPT_FOLLOWLOCATION, 1);
|
|
|
|
|
curl_setopt($ci, CURLOPT_MAXREDIRS, 2);/*指定最多的HTTP重定向的数量,这个选项是和CURLOPT_FOLLOWLOCATION一起使用的*/
|
|
|
|
|
curl_setopt($ci, CURLOPT_HTTPHEADER, $headers);
|
|
|
|
|
curl_setopt($ci, CURLINFO_HEADER_OUT, true);
|
|
|
|
|
$response = curl_exec($ci);
|
|
|
|
|
$requestinfo = curl_getinfo($ci);
|
|
|
|
|
if ($debug) {
|
|
|
|
|
echo "=====post data======\r\n";
|
|
|
|
|
var_dump($postfields);
|
|
|
|
|
echo "=====info===== \r\n";
|
|
|
|
|
print_r($requestinfo);
|
|
|
|
|
echo "=====response=====\r\n";
|
|
|
|
|
print_r($response);
|
|
|
|
|
}
|
|
|
|
|
curl_close($ci);
|
|
|
|
|
return $response;
|
|
|
|
|
}
|
|
|
|
|
|
2021-11-18 09:57:04 +00:00
|
|
|
|
}
|