2010-03-25 2 views
2

можно определить, установлена ​​ли флэш с помощью PHP. Моя цель состоит в том, что если он установлен, он будет воспроизводить файл flv, и если нет, он будет использовать другого игрока, например; QuickTime? Если возможно, как мне это сделать?PHP обнаружение, если установлена ​​вспышка

Благодаря Том

ответ

7

Там это лучший подход к этому -

Используйте SWFObject, чтобы встроить файл .swf. В наши дни это довольно стандартный отраслевой стандарт, никто, кто знает, что он делает, использует предварительно встроенный код вставки Flash.

Причина, по которой SWFObject поможет вам в том, что вы в основном говорите ей, чтобы найти div на вашем сайте и заменить его на div, содержащий встроенную Flash. Если у пользователя нет установленного Flash, нет проблем - он просто продолжает отображать оригинальный div.

Идея заключается в том, что вы помещаете свой альт-контент в div, который будет заменен вашим .swf. Это работает очень хорошо, и должно быть идеально для того, что вам нужно.

+1

Ток (январь 2013) SWFObject V2.2 ссылка теперь в http://code.google. com/p/swfobject/ – jdh

6

Вы не можете определить, что на стороне сервера (где работает PHP). Вам нужно будет обнаружить его на стороне клиента, используя JavaScript, и либо выполнить требуемые шаги на стороне клиента, либо передать результат на сервер с помощью запроса json/ajax/...

Вы можете скачать Flash Player Detection Kit от Adobe

2
**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! 
2

EDIT: Вы не должны полагаться на заголовок воспримет как упоминалось @bishop.

Он работает только надежно на IE браузеров (и это не должно;) поэтому)

Единственный способ некоторые Javascript логика.

Наследство код для IE:

"применение/х-ударно-вспышка"

if(preg_match('/x-shockwave-flash/',$_SERVER['HTTP_ACCEPT'])) { 
    /* flash logic comes here */ 
} else { 
    /* no-flash logic comes here */ 
} 
+0

Я пробовал ваш подход. Echoing '$ _SERVER ['HTTP_ACCEPT']' с включенной вспышкой дает мне текст/html, application/xhtml + xml, application/xml; q = 0.9, */*; q = 0.8'. Так что, к сожалению, это не работает. –

+0

[HTTP Accept определяет подходящий * ответ * тип запроса. а не возможности браузера.] (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html) – bishop

Смежные вопросы