PHP: 改变 file_get_contents() User-Agent


PHP 的内建函式 file_get_contents() 除了可以读取本地档案外, 也可以撷取远端网页, 但有些时候会还到 403 Forbidden 情况, 原因是网站服务器会读取 user-agent, 判断是否浏览器正常访问。

一般上网站会用 user-agent 判断访客的浏览器或 OS, 例如手机访客所看到的网页跟 desktop 有所不同。而封锁像 PHP 的 file_get_contents() 之类的非正常浏览 user-agent, 可以减少服务器的负荷及外部的 DDOS 攻击。

要解决这个问题, 可以在 PHP 执行时定义 user-agent, 让 PHP 模拟成正常浏览器, PHP 默认是使用空字串作为 user-agent, 例如改写为模拟 Firefox 写法是这样:

Tags:

Leave a Reply