Все ленты — последние статьи

Генерация Flash на веб-сервере в PHP

Обычно при создании flash-роликов подразумевается, что они изготавливаются, а затем уже и размещаются на сайте. Практически всегда, так оно и есть. Но ведь сам Интернет предполагает некую интерактивность. И действительно, во flash существует возможность описания реакций на определенные действия пользователя. Но, вместе с тем, увеличивается объем файла, значительно усложняется программирование. А ведь как было бы удобно, чтобы flash-ролики генерировались прямо на сайте исходя
из определенных условий.

Вы думаете, это невозможно? Напротив, подобные средства существуют. Самое распространенное и, видимо, пока самое лучшее — это библиотека ming для генерации анимации в формате .swf из скриптов perl, php и python.

 

Одна из существенных проблем, которая возникает у многих, кто начинает использовать в работе данную библиотеку, то, что на данный момент она недостаточно документирована, необходимых примеров использования также наработано пока немного. Ну и в конце концов — библиотека хоть и распространяется в исходных кодах, но существуют несколько различных сборок, которые работают немного по-разному. В общем, продукт, хоть и перспективный, но еще, честно говоря, довольно "сырой".

Есть еще одна проблема. Дело в том, что библиотека написана под linux. Это, в принципе, верно. Большинство веб-серверов работают именно в linux. Но очень часто возникает ситуация, когда желательно протестировать скрипты, использующие ming под windows. Ведь мало кто использует linux дома или на работе, привычнее все же операционная система от microsoft. Так что стандартным для многих веб-разработчиков стало использование windows с установленным apache, где и проводят все необходимые "полевые работы", прежде чем окончательно выложить готовый результат на веб-сервер.

Для начала, прежде чем описать установку и настройку данной библиотеке, назовем сайты, где можно взять все необходимые компоненты. php, в том числе и для windows, естественно, берутся на http://www.php.net/, версии для разработчиков, включая всякие дополнительные библиотеки (в том числе и особо важный php_ming.dll) доступны на http://www.php4win.com/. Исходные же тексты самой библиотеки можно взять на сайте группы разработчиков — www.opaque.net/ming.

Теперь о настройке apache и php. Известно, что php под apache можно поставить двумя способами: как интерпретатор и как модуль. Чтобы использовать ming, нужно второе. Нужно установить две библиотеки. Это php4ts.dll и php4apache.dll.

Если apache установлен в c:apache, то разместим библиотеки в подобающий им каталог c:apachemodules. Потом необходимо указать об этом в настройках веб-сервера в файле httpd.conf. Необходимо будет добавить всего одну строку к файлу:

loadmodule php4_module modules/php4apache.dll

А затем указать, что файлы с расширениями php,
phtml, php3, php4 и phps должны обрабатываться php. Для этого нужно
добавить следующие строки в httpd.conf:

addtype application/x-httpd-php .php

addtype application/x-httpd-php .phtml

addtype application/x-httpd-php .php3

addtype application/x-httpd-php .php4

addtype application/x-httpd-php-source .phps

Также, чтобы наш веб-сервер "знал", что индексные файлы могут быть теперь не только index.htm*, находим директиву directoryindex и дописываем новые типы файлов:

directoryindex index.html index.shtml index.htm
index.phtml index.php index.php3 index.php4

Теперь проверяемся. Запускаем apache. Если у вас windows 95 или apache запускается в консольном окне (не как сервис), то вы увидите такую строку:

apache/1.3.22 (win32) php/4.0.6 running…

Это означает, что все в порядке и пора приступать непосредственно к установке библиотеки ming. Необходимо будет установить библиотеку php_ming.dll и внести соответствующие изменения в файл php.ini.

В php.ini находим и изменяем следующие строки:

; directory in which the loadable extensions
(modules) reside.

extension_dir=c:apachephpext

Эта директива указывает путь для поиска библиотек с расширениями интерпретатором php. В этот же каталог размещаем и сам файл php_ming.dll.

После этого добавляем в конфигурационный файл следущую строку:

extension=php_ming.dll

Теперь, если все сделано верно, после запуска apache, можно поместить в файл с php-скриптом команду phpinfo(). В результате в броузере можно будет обнаружить информацию об установленной библиотеке:

ming ming swf output library the funk in your
trunk

version 0.1.0

Теперь, когда библиотека установлена, самое время понять, как ею пользоваться. Вот простейший пример скрипта, который генерирует flash-ролик:

<? php

$s = new swfshape();

$s->setline(4, 0x7f, 0, 0);

$s->setrightfill($s->addfill(0xff, 0,
0));

$s->movepento(10, 10);

$s->drawlineto(310, 10);

$s->drawlineto(310, 230);

$s->drawcurveto(10, 230, 10, 10);

$m = new swfmovie();

$m->setdimension(320, 240);

$m->setrate(12.0);

$m->add($s);

$m->nextframe();

header('content-type:
application/x-shockwave-flash');

$m->output();

?>

Описание функций, с помощью которых можно генерировать flash, можно найти как на сайте http://www.opaque.net/ming, так и вместе с исходными текстами в библиотеке. Остается одно — изучить их и использовать. В результате вы сможете генерировать flash прямо на веб-сервере и вносить необходимые изменения в файлы в случае необходимости.