为什么 curlExec() 的访问权限低于浏览器?
Why does curlExec() have less access than the browser?
我有一个下载网站图标文件的应用程序。最近我从使用 file_get_contents
切换到 curlExec
因为它有更高的成功率。
然而,当我尝试从 www.prisonexp.org 下载时,他们发送的不是实际的文件数据,而是文本 Forbidden.
通常,我会在该字段中看到一堆转换为 ASCII 的二进制数据在测试脚本中。
我觉得这很奇怪,因为我只能在浏览器中浏览到文件并手动下载。
这有效吗?或者我错过了什么?他们如何以一种方式而不是另一种方式阻止下载。要查看运行中的测试脚本,请转到此处。
另一方面,我如何检测服务器何时不发送二进制数据而是以文本形式发送消息?我可以检查 "Forbidden",但我不确定这是否是标准响应。
研究/更新
Download Methods
必须限制可以通过编程方式完成的事情,否则服务器可能会不堪重负。
读取用户代理是完成此操作的一种方式。
Wget 可能有更多访问权限,因为它通常用作命令行工具。类似地,将图像发送给您的客户,您将可以直接访问。
我有一个下载网站图标文件的应用程序。最近我从使用 file_get_contents
切换到 curlExec
因为它有更高的成功率。
然而,当我尝试从 www.prisonexp.org 下载时,他们发送的不是实际的文件数据,而是文本 Forbidden.
通常,我会在该字段中看到一堆转换为 ASCII 的二进制数据在测试脚本中。
我觉得这很奇怪,因为我只能在浏览器中浏览到文件并手动下载。
这有效吗?或者我错过了什么?他们如何以一种方式而不是另一种方式阻止下载。要查看运行中的测试脚本,请转到此处。
另一方面,我如何检测服务器何时不发送二进制数据而是以文本形式发送消息?我可以检查 "Forbidden",但我不确定这是否是标准响应。
研究/更新
Download Methods
必须限制可以通过编程方式完成的事情,否则服务器可能会不堪重负。
读取用户代理是完成此操作的一种方式。
Wget 可能有更多访问权限,因为它通常用作命令行工具。类似地,将图像发送给您的客户,您将可以直接访问。