网站信息推送上级监管服务器实现原理
某年某月某日,一个客户要求把他的网站推送到某个监管平台,找了几个程序员,他们都不愿意做,可能是觉得太复杂,赚钱少,于是我接了这个任务。用ChatGPTI生成了以下代码。
实现原理比较简单,我相信所有程序员都能看得懂。可以在这个基础上举一反三,因为涉及到一些隐私。具体的网址我就不发出来了。 也是好久没有写博客了。之前的博客园、csdn。好像已经过时,找了好半天感觉稀土掘金还不错,于是选用了这个平台。
<?php
function md5_convert($string) {
return md5($string);
}
function makeData() {
$record_list = [
[
'status' => 0, // 文章状态 是否为空:否 字典-有效状态。显示填0,过滤填1,删除填2,下线填3,修改填4
'type' => 0, // 关联类型 是否为空:否 字典-关联类型 新发布填0,评论填1, 转发填3,私信填4,用户删除填5,点赞填6
'sitename' => base64_encode('翼通云'), // 网站名称 是否为空:否 做Base64编码
'domain' => base64_encode('www.ynicp.com'), // 网站域名 是否为空:否 做Base64编码
'board_name' => base64_encode('创业日记'), // 频道名称 是否为空:否 做Base64编码
'channel' => 1, // 发表信道 是否为空:否 文章发表的信道,PC端网页浏览器填1,移动客户端填2,移动版浏览器填3,未发布填-1
'forms' => 6, // 文章内容类型 是否为空:否 文字填1,纯图片填2,纯视频填3,纯音频填5,文字+图片填6,文字+视频填7,文字+音频填8,其他填9
'original' => 0, // 是否原发 是否为空:否 是否原创。原创填1, 非原创填0
'from' => base64_encode('本站'), // 来源 是否为空:否 做Base64编码
'publishtime' => date("Y-m-d H:i:s"), // 文章发表时间 是否为空:否 文章在网站上发表时间,即显示在页面上的时间。yyyy-MM-dd HH:mm:ss格式
'originurl' => base64_encode('https://www.ynicp.com/1.html'), // 文章链接 是否为空:否 文章发布的URL 做Base64编码
'title' => base64_encode('文章标题'), // 文章标题 是否为空:否 做Base64编码
'abstract' => base64_encode('摘要'), // 文章摘要 是否为空:否 做Base64编码
'text' => base64_encode('正文'), // 文章内容 是否为空:否 做Base64编码
'authorid' => base64_encode('888'), // 作者账号ID 是否为空:否 如果该文章的作者在企业中注册了作者账号,填写其账号ID 做Base64编码
'authorname' => base64_encode('张三'), // 作者名 是否为空:否 做Base64编码
'accounturl' => null, // 作者主页 是否为空:否 做Base64编码
'iconurl' => null, // 头像logo原始地址 是否为空:否 url地址 做Base64编码
'sendip' => '127.0.0.1', // 发文IP 是否为空:否
'sendadress' => '127.0.0.1', // 发文ip所在地址 是否为空:否
'photourls' => null, // 图片URL 是否为空:否 文章中的图片URL或ID,可为多个。可通过此字段获取图片 每个元素做base64编码
'videourls' => null, // 视频URL 是否为空:否 文章中的视频URL或ID,可为多个。可通过此字段获取视频 每个元素做base64编码
'attachmenturls' => null, // 附件链接 是否为空:否 文章中的附件URL或ID,可为多个。可通过此字段获取文件 每个元素做base64编码
'audiourls' => null, // 音频URL 是否为空:否 文章中的音频URL或ID,可为多个。可通过此字段获取音频 每个元素做base64编码
]
];
$send_data = [
"msg_version" => 1.0,
"total_pushed_num" => 1,
"msg_type" => "website.base",//网站基础数据 website.base 网站交互统计数据website.baseia 网站评论数据website.comment
"key" => "key是一串字符",//这个Key
"record_list" => $record_list,
"version"=> "P1.0.0",
"md5" => md5_convert(json_encode($record_list))
];
return $send_data;
}
function sendMsg($json_data) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "这里输入接收网址");//接收服务器地址
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($json_data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//下面这两句很重要
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 忽略SSL证书验证
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 忽略SSL证书验证
//echo json_encode(makeData($json_data));
$response = curl_exec($ch);
// 处理服务器响应
if ($response === false) {
// 请求失败的处理逻辑
$error = curl_error($ch); // 获取详细的错误信息
echo "cURL Error: " . $error;
} else {
// 请求成功的处理逻辑
echo $response;
}
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $status_code;//返回200就表示成功
}
//echo json_encode(makeData()) . "\n";
sendMsg(makeData());
?>
`