110 lines
4.0 KiB
PHP
110 lines
4.0 KiB
PHP
<?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));
|
||
}
|
||
|
||
/**
|
||
* 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;
|
||
}
|
||
|
||
}
|