Files
QuickAPI/api/icp/index.php
2026-03-18 13:16:49 +08:00

111 lines
2.9 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
$file = 'counter.dat';
// 读取并自增
$counter = (int)@file_get_contents($file);
$counter++;
// 使用 LOCK_EX 防止并发写入冲突
file_put_contents($file, $counter, LOCK_EX);
?>
<?php
Header('Content-type: Application/json; charset=utf-8');
require '../../need.php';
$Request = need::Request();
$type = isset($Request['type']) ? $Request['type'] : 'json'; //获取返回格式 默认json
$url = isset($Request['url']) ? $Request['url'] : '';
new icp(['url'=>$url, 'type'=>$type]);
class icp
{
private $info = [];
private $array = [];
private $Message;
public function __construct(array $array)
{
/* php构造函数 类初始化时自动运行 */
foreach($array as $k=>$v)
{
/* for循环获取参数并赋值到类中使用 */
$this->info[$k] = $v;
}
$this->parameterException(); //调用类中方法
}
private function parameterException()
{
/* 判断参数是否正常 */
if(!stristr($this->info['url'], 'http'))
{
$this->info['url'] = 'http://'.$this->info['url'];
}
$host = parse_url($this->info['url'], PHP_URL_HOST);
if(!$host)
{
$this->evaluation(array('code'=>-1, 'text'=>'请输入正确的域名'));
return;
}
$this->run(); //调用方法
return true;
}
private function Run()
{
$scheme = @parse_url($this->info['url'], PHP_URL_SCHEME);
$host = @parse_url($this->info['url'], PHP_URL_HOST);
$url = $scheme.'://'.$host;
$data = json_decode(trim(preg_replace('/([a-z]+):/i', '"$1":', preg_replace('/jQuery\((.*)\)/', '$1', need::teacher_curl('https://micp.chinaz.com/Handle/AjaxHandler.ashx?action=GetPermit&callback=jQuery&query='.$host.'&type=host&_=1672673081420')))));
// print_r($data);
if(!isset($data->Typ))
{
$this->evaluation(array('code'=>-2, 'text'=>'备案数据获取失败'));
return;
}
$String = '';
$array = array(
'unit'=>$data->ComName,
'property'=>$data->Typ,
'record'=>$data->Permit,
'hostname'=>$data->WebName,
);
$String = "主办单位:{$data->ComName}\n单位性质{$data->Typ}\n网站名字{$data->WebName}\n网站备案号{$data->Permit}";
$String = trim($String, PHP_EOL);
$this->evaluation(array('code'=>1, 'text'=>'获取成功', 'data'=>$array), $String);
return;
}
private function delete() : bool
{
/* 删除已有参数 */
unset($this->array, $this->Message);
return true;
}
private function evaluation(array $array, $string = false) : bool
{
/* 输出数据 */
$string = $string ? $string : $array['text']; //判断$string是否存在
$this->delete(); //调用删除方法
$this->array = $array; //赋值
$this->Message = $string; //赋值
$this->result(); //输出内容
return true;
}
private function result()
{
$info = $this->info;
$type = isset($info['type']) ? $info['type'] : 'json';
Switch($type)
{
case 'text':
need::send($this->Message, 'text');
break;
default:
need::send($this->array, 'json');
break;
}
return true;
}
}