是否可以检测是否使用PHP安装了闪存。我的目标是,如果它被安装,它会播放一个flv文件,如果不是,它会使用另一个播放器,例如; QuickTime的?如果可能的话,我该如何去做呢?PHP检测是否安装了闪存
感谢 汤姆
是否可以检测是否使用PHP安装了闪存。我的目标是,如果它被安装,它会播放一个flv文件,如果不是,它会使用另一个播放器,例如; QuickTime的?如果可能的话,我该如何去做呢?PHP检测是否安装了闪存
感谢 汤姆
,还是有一些更好的方法 -
使用SWFObject嵌入您的.swf文件。这几乎是现在的行业标准,没有人知道他们在做什么使用预先构建的Flash嵌入代码。
SWFObject将帮助你的原因是,你基本上告诉它去你的网站上找到一个div,并用包含嵌入式Flash的div替换它。如果用户没有安装Flash,没有问题 - 它只是继续显示原始的div。
这个想法是,你把你的ALT内容放入将被你的.swf替换的div中。这工作非常好,应该是你所需要的完美。
PHP无法检测此...只有JavaScript可以。
http://www.adobe.com/support/flash/how/shock/javaplugs/index.html
您不能确定在服务器端(PHP运行在那里)。您将不得不在客户端使用JavaScript检测它,然后在客户端执行想要的步骤或使用json/ajax/...将请求的结果传回到服务器。
您可以下载Flash Player Detection Kit从Adobe
**Steps to get Javascript value in PHP code**
Using SWFObject JS file, you can get the playerversion (if flash player exists).
// Code to identify whether flash player installed or not
var playerVersion = swfobject.getFlashPlayerVersion();
// set a cookie in Javascript and reload your page
document.cookie="flashplayer_status" + "=" + playerVersion.release;
// Finally - We can get the Javascript cookie value
// Whether Flash player is Installed in your
// System or not using PHP ..
echo $_COOKIE['flashplayer_status'];
//Thats it!
编辑:你不应该依赖于接受头为@bishop mentionned。
它仅适用于可靠IE浏览器(和它不应该;)因此)
的唯一方法是一些JavaScript逻辑。
为IE遗留码:
“应用程序/ x-冲击波闪光”
if(preg_match('/x-shockwave-flash/',$_SERVER['HTTP_ACCEPT'])) {
/* flash logic comes here */
} else {
/* no-flash logic comes here */
}
我试过你的方法。使用flash启用$ _SERVER ['HTTP_ACCEPT']'给我'text/html,application/xhtml + xml,application/xml; q = 0.9,*/*; q = 0.8'。所以不幸的是,它不起作用。 – 2014-03-30 20:46:47
[HTTP Accept确定请求的相应*响应*类型。而不是浏览器的功能。](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html) – bishop 2015-05-12 13:46:54
当前(2013年1月)的SWFObject V2.2链路现在是http://code.google。 com/p/swfobject/ – jdh 2013-01-04 14:46:33