Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Детектирование FLASH и HTML в PHP файле
 
 автор: v10k   (14.08.2007 в 18:44)   письмо автору
 
 

Подскажите плиз каким образом определить в PHP файле - установлен ли в клиентском браузере плеер flash-роликов или нет, и в зависимости от этого подгружать тот или иной файл (html-меню сайта или flash-меню соответсвенно)?

Вот такой код ТОЧНО определяет наличие или отсутствие Flash-плугина, вопрос тока в том как потом выцепить из него переменную FLASH для дальнейшей обработки ее в PHP коде:


<blockquote class="note"><script language="javascript"><!-- 

var plugin; 
var version = 5; 
var flash = false; 

if (navigator.plugins) { 

    if (navigator.plugins["Shockwave Flash"]) { 
        plugin = navigator.plugins["Shockwave Flash"].description; 
        flash = parseInt(plugin.charAt(plugin.indexOf('.') - 1)) >= version; 
        document.writeln('plugin: ' + plugin + '<br>'); 
        document.writeln('flash: ' + flash + '<br>'); 

    } else { 
        document.writeln('no plugin<br>'); 
        plugin = 'no plugin'; 

        if ((navigator.userAgent.indexOf('MSIE') != -1) 
            && (navigator.userAgent.indexOf('Win') != -1)) 
        { 
            var vb = '<script language="vbscript">\n' 
                   + '  on error resume next\n' 
                   + '  flash = IsObject(CreateObject(' 
                   + '     "ShockwaveFlash.ShockwaveFlash.' + version + '"))\n' 
                   + '<' + '/script>'; 
            document.write(vb); 
            if (flash) { 
                document.writeln('ActiveX Flash' + version 
                                 + ' object found<br>'); 
                plugin = 'no plugin, ActiveX object'; 

            } else { 
                document.writeln('ActiveX Flash' + version 
                                 + ' object not found<br>'); 
            } 
        } 
    } 

} else { 
    document.writeln('no plugins<br>'); 
    plugin = 'no plugins'; 


if (flash) 
    document.writeln('Flash' + version + ' found'); 
else 
    document.writeln('Flash' + version + ' not found'); 

        document.writeln('flash: ' + flash + '<br>'); 
document.writeln('<img src="/images/empty.gif?plugin=' + 
                 escape(plugin) + '&flash='+ flash + 
                 '" width="1" height="1">'); 

//--></script><noscript> 
no javascript - no Flash detection 
</noscript></blockquote></p><p> 

   
 
 автор: v10k   (14.08.2007 в 18:44)   письмо автору
 
   для: v10k   (14.08.2007 в 18:44)
 

Ниже приведу тестовый код обработчика НО он не срабатывает:


<? 
$flash 
$_GET['flash']; 

if (
$flash == true

include_once(
"ssi/header-bak.php"); 
echo(
"Flash"); 
echo(
$flash); 
echo(
$_flash); 

else 

include_once(
"ssi/header.php"); 
echo(
"NoFlash"); 
echo(
$flash); 
echo(
$_flash); 

?>



Подскажите плиз в чем может быть трабл?

   
 
 автор: Proger   (14.08.2007 в 19:53)   письмо автору
 
   для: v10k   (14.08.2007 в 18:44)
 

хм... скрипты сам флеш при экспорте выдаёт!

   
 
 автор: sim5   (14.08.2007 в 21:33)   письмо автору
 
   для: v10k   (14.08.2007 в 18:44)
 

Попробовал я этот код, помоему это лажа. Запишите так:
var version = 9;
вместо 5, и у вас будет выдавать:
no plugin
Flash9 not found flash: false
Этот код у меня ничего не обнаруживает, хотя плагин у меня стоит.

   
 
 автор: AlexSol   (14.08.2007 в 22:00)   письмо автору
 
   для: sim5   (14.08.2007 в 21:33)
 

если вас тревожит, что у клиента нет плеера, то обычно делают два варианта:
1) на титуле спрашивают есть или нет.
2) на стороне клиента - есть текст в <div>. идет проверка на javascript, если плеер есть - вместо содержимого <div> выводиться флешка. если плеера нет, то содержимое блока.

для второго варианта вам поможет поиск по swfObject (например в Рамблере - первые две ссылки)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования