Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 文件\u获取\u内容不获取文件内容?_Php_File_File Get Contents - Fatal编程技术网

Php 文件\u获取\u内容不获取文件内容?

Php 文件\u获取\u内容不获取文件内容?,php,file,file-get-contents,Php,File,File Get Contents,我使用了一个简单的file\u get\u contents函数,但它没有得到该函数的实际内容(输出) 我想不出这个错误 代码: 检查你的网址 当我把你的url放进浏览器时,它什么也不给,所以file\u get\u contents返回一个空字符串 您需要检查file\u get\u contents的输出,如下所示: if($data !== false) 而不是 if($data) 我还得到一个HTTP响应500。为了抓取Youtube,您可能必须欺骗呼叫的用户代理和其他措施,以防止Y

我使用了一个简单的file\u get\u contents函数,但它没有得到该函数的实际内容(输出)

我想不出这个错误

代码:

检查你的网址

当我把你的url放进浏览器时,它什么也不给,所以
file\u get\u contents
返回一个空字符串

您需要检查
file\u get\u contents
的输出,如下所示:

if($data !== false)
而不是

if($data)

我还得到一个HTTP响应500。为了抓取Youtube,您可能必须欺骗呼叫的用户代理和其他措施,以防止Youtube将您识别为抓取者。

我在以下位置获得一个
HTTP 403

响应标题:

内容类型:文本/纯文本

日期:2010年9月21日星期二09:59:13 GMT

代理连接:关闭

服务器:GVS1.0

Via:1.0proxy3@XXXXX.sch.uk:8080(squid/2.6.STABLE19),1.0 wcsproxy.XXXX.org.uk:8080(squid/2.6.STABLE19)

X-Cache:来自的未命中proxy3@XXX.sch.uk,来自wcsproxy.XXX.org.uk的小姐

X-Content-Type-Options:nosniff


嗯,当我试图加载您在
$flv\u http\u path
中引用的URL时,我得到了:

HTTP/1.1 403 Forbidden
Content-Type: text/plain
Connection: close
X-Content-Type-Options: nosniff
Date: Tue, 21 Sep 2010 09:57:19 GMT
Server: gvs 1.0
作为回报

这应该给你一个线索:)

如果这不是您试图打开的acutal文件,并且您实际上没有试图刮取youtube,那么您应该尝试将url包装到urlencode()edit:但是url已经是urlencoded(duh!)


“如果要打开带有特殊字符(如空格)的URI,则需要使用urlencode()对URI进行编码。”--

链接为空。在浏览器中启动链接并检查源代码。没有数据。

这是一种防止您自动获取他们的flv文件的方法

您无法从服务器获取文件,因为下载链接(您从浏览器获取的链接,或者您如何找到flv链接)已锁定到浏览器

这就是为什么当你以外的人尝试调用链接时,我们都会禁止403 HTTP,即使是使用伪造的用户代理


尝试使用cURL并显示标题,您将了解我的意思。

基本调试告诉您什么?转动
错误报告时出现的任何错误(E_ALL)打开?它不会打印任何错误。。它只需打印url,然后在两种情况下执行else循环..我从youtube的http live Header中获得该url..通常最好使用适当的http库打开url,如curl或其他,这样您就可以获得响应头并查看发生了什么。我尝试了,但没有输出。。当我在浏览器中尝试该url时,会弹出一个窗口询问是否保存或打开该文件。另外,您可以查看是否启用了allow_url_fopen。或者你可以用cURL试试。如果我用cURL,怎么能从youtube发送的实时标题列表中匹配出准确的标题呢?即使你匹配了准确的标题,也不行。因为您从live Header获得的链接锁定到您的IP,而不是服务器。我只是建议使用cURL,因为这样你就可以在服务器调用中看到来自youtube的403消息。(我说得通吗?)
if($data)
HTTP/1.1 403 Forbidden
Content-Type: text/plain
Connection: close
X-Content-Type-Options: nosniff
Date: Tue, 21 Sep 2010 09:57:19 GMT
Server: gvs 1.0