Files
fdesk/app/process/CheckWeb.php
T

70 lines
2.3 KiB
PHP
Raw Normal View History

2025-09-26 15:50:23 +08:00
<?php
namespace app\process;
2025-10-13 13:25:19 +08:00
use app\common\model\User;
use app\common\utils\WsEvents;
use support\Redis;
2025-09-26 15:50:23 +08:00
use Workerman\Crontab\Crontab;
class CheckWeb
{
public function onWorkerStart()
{
2025-10-16 09:15:42 +08:00
// if (getenv('ENVIRONMENT') === 'master') {
// new Crontab('0 */10 * * * *', function(){
// $result = $this->tocurl('https://magicbridgeauto.com');
// if (!preg_match('/magicbridgeauto/', $result['body'])) {
// flg("【magicbridgeauto】疑似被篡改");
// }
// return true;
// });
// }
2025-10-13 13:25:19 +08:00
2025-10-13 15:45:29 +08:00
new Crontab('*/50 * * * * *', function(){
2025-10-13 15:43:34 +08:00
$userIds = User::where('status', 1)->pluck('id')->toArray();
2025-10-13 13:25:19 +08:00
foreach ($userIds as $userId) {
2025-10-13 15:40:46 +08:00
$status = Redis::hGet('user:check:sign'.$userId, 'status');
2025-10-13 13:25:19 +08:00
if ($status) {
continue;
}
$ws = new WsEvents();
$ws->pushWebsocket('system.init.check', $userId, $ws->initCheck($userId));
}
});
2025-09-26 15:50:23 +08:00
}
public function tocurl($url, $header = null, $content = null)
{
$ch = curl_init();
if(substr($url,0,5)=='https'){
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在
curl_setopt($ch, CURLOPT_SSLVERSION, 1);
}
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $url);
if (is_array($header)) {
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
}
curl_setopt($ch, CURLOPT_POST, true);
if (!empty($content)) {
if (is_array($content)) {
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($content));
} else if (is_string($content)) {
curl_setopt($ch, CURLOPT_POSTFIELDS, $content);
}
}
$response = curl_exec($ch);
$error=curl_error($ch);
if($error){
die($error);
}
$header = curl_getinfo($ch);
curl_close($ch);
$data = array('header' => $header,'body' => $response);
return $data;
}
}