php实现网址监控
PHP实现网址监控的方法
使用cURL检查网址状态
通过PHP的cURL库可以检查网址的HTTP状态码,判断是否可访问。以下是一个简单的实现示例:
function checkUrlStatus($url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return $httpCode;
}
$status = checkUrlStatus('https://example.com');
if ($status == 200) {
echo "网站可访问";
} else {
echo "网站不可访问,状态码:$status";
}
定时执行监控脚本
可以使用Linux的crontab设置定时任务,定期执行PHP监控脚本:

# 每5分钟执行一次监控脚本
*/5 * * * * /usr/bin/php /path/to/monitor.php
异常通知机制
当检测到异常时,可以通过邮件或短信通知管理员:
function sendAlert($message) {
$to = 'admin@example.com';
$subject = '网站监控警报';
mail($to, $subject, $message);
}
if ($status != 200) {
sendAlert("网站 $url 不可访问,状态码:$status");
}
记录监控日志
将每次监控结果记录到日志文件中,便于后续分析:

function logStatus($url, $status) {
$log = date('Y-m-d H:i:s') . " - $url - $status\n";
file_put_contents('monitor.log', $log, FILE_APPEND);
}
高级功能扩展
对于更复杂的监控需求,可以考虑以下扩展:
- 监控响应时间:记录网站的加载速度
- 内容验证:检查网页是否包含特定关键词
- 多URL监控:批量检查多个网站状态
- 可视化报表:使用图表展示历史监控数据
使用现成的监控解决方案
如果不想从头开发,可以考虑以下PHP开源监控工具:
- PHP Server Monitor
- Nagios with PHP interface
- Zabbix with PHP frontend
这些工具提供了更完善的监控功能,包括报警、图表和用户界面等。






