TaoLer/extend/taoler/com/Api.php
2022-11-18 10:31:44 +08:00

101 lines
3.5 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/*
* @Author: TaoLer <317927823@qq.com>
* @Date: 2021-12-06 16:04:50
* @LastEditTime: 2022-08-01 10:09:11
* @LastEditors: TaoLer
* @Description: 优化版
* @FilePath: \github\TaoLer\extend\taoler\com\Api.php
* Copyright (c) 2020~2022 https://www.aieok.com All rights reserved.
*/
namespace taoler\com;
use think\Response;
class Api
{
public static function urlPost($url, $data)
{
if($url == ''){
return json(['code'=>-1,'msg'=>'800']);
}
$ch =curl_init ();
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
curl_setopt($ch, CURLOPT_POSTFIELDS,$data);
curl_setopt($ch, CURLOPT_TIMEOUT, 10); // 设置超时限制 防止死循环
//curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
$res = curl_exec($ch);
$httpCode = curl_getinfo($ch,CURLINFO_HTTP_CODE);
curl_close($ch);
if($httpCode == '200'){
return json_decode($res);
} else {
return json_decode('{"code":-1,"msg":"远程服务器失败,稍后重试"}'); //转换为对象
}
}
public static function urlGet($url)
{
$ch =curl_init ();
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true); //将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。 1表示传输数据为0表示直接输出显示。
//curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($ch, CURLOPT_HEADER, false); //启用时会将头文件的信息作为数据流输出。 参数为1表示输出信息头,为0表示不输出
$data = curl_exec($ch);
$httpCode = curl_getinfo($ch,CURLINFO_HTTP_CODE);
curl_close($ch);
if($httpCode == '200'){
return json_decode($data);
} else {
//$status ='{"code":-1,"msg":"远程服务器失败"}'; //字符串
return json_decode('{"code":-1,"msg":"远程服务器失败,稍后重试"}'); //转换为对象
}
}
public static function urlGetRespond($url)
{
$ch =curl_init ();
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true); //将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。 1表示传输数据为0表示直接输出显示。
//curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($ch, CURLOPT_HEADER, false); //启用时会将头文件的信息作为数据流输出。 参数为1表示输出信息头,为0表示不输出
$data = curl_exec($ch);
$httpCode = curl_getinfo($ch,CURLINFO_HTTP_CODE);
curl_close($ch);
if($httpCode == '200'){
//return json_decode($data);
return json(['code'=>0, 'data'=>$data]);
} else {
//return json_decode('{"code":-1,"msg":"远程服务器失败,稍后重试"}'); //转换为对象
return json(['code'=>-1,'msg'=>'Remote server failed, try again later']);
}
}
public static function get_real_ip()
{
static $realip;
if (isset($_SERVER)) {
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$realip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else if (isset($_SERVER['HTTP_CLIENT_IP'])) {
$realip = $_SERVER['HTTP_CLIENT_IP'];
} else {
$realip = $_SERVER['REMOTE_ADDR'];
}
} else {
if (getenv('HTTP_X_FORWARDED_FOR')) {
$realip = getenv('HTTP_X_FORWARDED_FOR');
} else if (getenv('HTTP_CLIENT_IP')) {
$realip = getenv('HTTP_CLIENT_IP');
} else {
$realip = getenv('REMOTE_ADDR');
}
}
return $realip;
}
}