我正在尝试从我的 Flash 游戏网站中删除无效的 URL。这是我的代码:
function valid($URL1) {
$headers = get_headers($URL1);
$headers = substr($headers[8],38,5);//leaves only flash word
if ($headers=='flash')
return true; else return false;
}
$URL1='http://www.ht83.com/medias/media-16/ht83com-cde-house-decoration.swf';
if(valid($URL1))
echo 'SWF are word>' ;
即使 Content-Type 不是 swf ,该代码也会返回 true 。
顺便说一句,我已经尝试过
$headers=$headers['Content-Type'];
但给我没有结果。当我尝试
var_dump($headers);
返回此以获得有效的 SWF URL http://www.ht83.com/medias/media-16/ht83com-spongebob-squarepants-gone-fishing.swf
数组(9){ [0]=> 字符串(15)“HTTP/1.1 200 OK”[1]=> 字符串(35)“日期:星期六,2014 年 2 月 1 日 01:36:35 GMT”[2]=>字符串(144)“服务器:Apache/2.2.17(Unix)mod_ssl/2.2.17 OpenSSL/0.9.8m DAV/2 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 mod_fcgid/2.3.5”[3]=>字符串(20)“接受范围:字节”[4]=>字符串(22)“内容长度:342771”[5]=>字符串(39)“缓存控制:最大年龄=62208000,公共”[ 6]=> 字符串(38)“过期:星期一,2014 年 3 月 3 日 01:36:35 GMT”[7]=> 字符串(17)“连接:关闭”[8]=> 字符串(43)“内容类型: 应用程序/x-shockwave-flash" }
这对于无效的 SWF URL http://www.ht83.com/medias/media-16/ht83com-cde-house-decoration.swf
数组(12){ [0]=> 字符串(15)“HTTP/1.1 200 OK”[1]=> 字符串(35)“日期:星期六,2014 年 2 月 1 日 01:40:06 GMT”[2]=>字符串(144)“服务器:Apache/2.2.17(Unix)mod_ssl/2.2.17 OpenSSL/0.9.8m DAV/2 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 mod_fcgid/2.3.5”[3]=> string(24) "X-Powered-By: PHP/5.2.16" [4]=> string(38) "过期时间: Thu, 19 Nov 1981 08:52:00 GMT" [5]=> string(77) "Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0" [6]=> string(16) "Pragma: no-cache" [7]=> string(62) "Set-Cookie: PHPSESSID=359cf391842876b3cc79066dcc3a08f4; path=/" [8]=> string(21) "Vary: Accept-Encoding" [9]=> string(52) "Cache-Control: max-age =600,私有,必须重新验证" [10]=>字符串(17)“连接:关闭”[11]=>字符串(23)“内容类型:文本/html”}
所以他们是获得正确 Content-Type 的 URL 的任何更简单的方法。
看起来我只在数字中使用了 get_headers() 。肖恩约翰逊的这段代码有效
function valid($URL) {
$headers = get_headers($URL, 1);//
return stripos($headers['Content-Type'],"application/x-shockwave-flash")!==false;
}