PHP无法直接实现久坐预警,需前端检测(Page Visibility API、事件监听)触发后调用PHP接口发送提醒;AI模型应独立部署为HTTP服务,PHP仅调用;须统一时间戳、处理跨域、合规获取用户授权并记录日志。

PHP 调用 AI 服务做久坐预警不现实,得换思路
PHP 本身不是做实时感知或终端行为监测的语言,它没有访问用户摄像头、屏幕活跃状态、键盘鼠标事件的能力,也无法在后台持续监听设备活动。所谓“用 PHP + AI 做久坐预警”,实际是混淆了执行环境——PHP 适合做后端逻辑(比如接收上报、查规则、发通知),但感知“久坐”这个动作必须由前端(浏览器/APP)或系统级程序完成。
真正可行的链路:前端检测 + PHP 后端协同
典型做法是:浏览器用 Page Visibility API 和 mousemove/keydown 事件判断用户是否离开页面或长时间无操作,再结合定时器计算静默时长;一旦触发阈值(如 30 分钟无交互),前端主动调用 PHP 接口(如 /api/sit-reminder.php)上报事件,由 PHP 发送微信/邮件/短信提醒。
- 前端需处理防抖:避免频繁触发,建议用
setTimeout+clearTimeout管理静默计时器 - PHP 接口要校验来源(如检查
HTTP_REFERER或加简单 token),防止被恶意刷调用 - 别在 PHP 里写“AI 判断久坐”逻辑——这里不需要模型,只需规则:
last_active_time - 若真想引入轻量 AI(如用行为序列预测疲劳倾向),模型必须部署为独立 HTTP 服务(Python FastAPI/Flask),PHP 只负责
file_get_contents或curl调用其/predict接口
用 PHP 发健康提醒的实操要点
PHP 不做识别,但要做好通知分发。常见组合:
- 微信服务号:调用企业微信
/cgi-bin/message/send接口,需提前配置corpid、corpsecret,用curl发 JSON - 邮件提醒:用
PHPMailer库,注意 SMTP 密码不能硬编码,应从$_ENV['MAIL_PASSWORD']读取 - 手机短信:对接云厂商(如阿里云
/green/text/detect是内容审核,发短信走/sms/send),务必过滤敏感词,否则可能被拦截 - 日志必须记全:记录
user_id、trigger_time、duration_seconds、notification_status,方便后续分析误报率
容易被忽略的坑:时间、权限与合规
很多项目卡在看似无关的细节上:
立即学习“PHP免费学习笔记(深入)”;
- 前端时间用
Date.now(),PHP 用time(),服务器和浏览器时区不一致会导致30 分钟判定漂移——统一转成 UTC 时间戳比对 - Chrome 88+ 默认阻止跨域
fetch的 cookies,若 PHP 接口依赖 session,前端要加credentials: 'include' - 《个人信息保护法》要求明确告知用户“正在监测使用时长”,并在前端提供一键关闭开关,PHP 接口需支持
DELETE /api/reminders/{user_id}停用订阅 - 别把“AI”当挡箭牌:监管关注的是“是否收集敏感行为数据”,而不是你用没用模型。鼠标轨迹、焦点切换频率等都属于个人行为信息,需单独取得用户明示同意
真正的难点不在代码怎么写,而在定义清楚“什么算久坐”——是屏幕亮着但没动?还是连 Tab 都没切?这个边界得产品、法务、前端一起拍板,PHP 只负责忠实执行规则并留痕。



















