php 7.2 通过设置 user-agent 请求头模拟 opera 浏览器,curl 方式最常用,需配置 curlopt_useragent 及其他标准选项;file_get_contents 方式需手动构造含 opera ua 的 header;ua 字符串须真实有效,无需扩展或 php.ini 修改。

PHP 7.2 本身不模拟浏览器类型(如 Opera),它只负责发起 HTTP 请求;所谓“模拟 Opera”,实质是让服务端认为请求来自 Opera 浏览器,关键在于设置正确的 User-Agent 请求头,而非改变 PHP 行为本身。
用 cURL 设置 Opera User-Agent 发起 POST
cURL 是最常用、最可控的方式。只需在标准 POST 配置基础上,显式添加 Opera 对应的 User-Agent 字符串:
- Opera 桌面版常见 UA 示例:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 OPR/106.0.0.0 - 确保
CURLOPT_RETURNTRANSFER设为true,否则响应不会返回到变量 - 若发 JSON,需配合
Content-Type: application/json头;若发表单,传数组即可自动编码
用 file_get_contents 模拟(轻量场景)
适合简单表单提交,无需 cURL 扩展。重点是手动构造包含 Opera UA 的 header:
- 用
http_build_query()编码数据,不能直接传数组 - header 中必须包含
User-Agent: Mozilla/5.0 (...) OPR/106.0.0.0 - 别漏掉
Content-Length,虽然多数情况自动补,但部分接口会校验
注意 UA 字符串的真实性和时效性
硬编码过时的 UA(如旧版 Presto 内核的 Opera/9.80)可能被目标站点拦截或限流。建议参考当前主流 Opera 版本的 UA 格式,或从真实 Opera 浏览器开发者工具中复制 Network 请求的 Request Headers。
不需要额外安装扩展或修改 php.ini,纯代码层控制。只要 UA 字符串合法、请求体格式匹配接口要求,服务端就无法区分这是 PHP 还是真实 Opera 发出的请求。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











