无法通过 file_get_contents() 从 url 接收数据

failed to receive data from url via file_get_contents()

我明白了

failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found

尝试使用 file_get_contents() 访问 url 时。但是,当使用 curl -i 在 unix 控制台中调用它时,我得到 200 ok.

仅通过 curl -I 调用 headers 得到 403 Forbidden

如何通过php获取该页面的内容?为什么使用 curl?

会得到不同的结果
http://ajillion-customer-files.s3.amazonaws.com/reports/ff82f47836954b88adf57e42b85a82b5\?Signature\=FQNSVR%2Bs1XVu4UzP0%2BfscVmXsRc%3D\&Expires\=1434015848\&AWSAccessKeyId\=AKIAJ35DX3F5NPKSAKMQ

您的 URL 似乎是因为使用 shell 参数而被反斜杠转义?因此,服务器无法正确读取查询参数。 如果我 运行 这个:

<?php
echo file_get_contents('http://ajillion-customer-files.s3.amazonaws.com/reports/ff82f47836954b88adf57e42b85a82b5?Signature=FQNSVR%2Bs1XVu4UzP0%2BfscVmXsRc%3D&Expires=1434015848&AWSAccessKeyId=AKIAJ35DX3F5NPKSAKMQ');

它工作正常 returns:

{"rows": [{"advertiser": "BM Fogzy", "hits": 0, "campaign": "BM Fozgy US (87417)", "revenue": 4.049, "source": 4, "impressions": 16196}]}