Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: В XAMPP нет PHP ext/id3 где взять?!
Форумы портала PHP.SU » PHP » PEAR и PECL » В XAMPP нет PHP ext/id3 где взять?!

Страниц (1): [1]
 

1. XelaNimed - 13 Августа, 2010 - 11:57:32 - перейти к сообщению
Всем доброго и продуктивного времени суток. Уважаемые, используется XAMPP, потребовалось использование функций таких как id3_get_tag и ей подобных. И вот она проблема этой библиотеки нет в ХАМРРе. Читал как ее подключить, но там какие-то компиляции и тому подобное, плюс Visual Studio устанавливать нужно, насколько я понял. Собственно вопрос: насколько я понимаю при использовании Windows можно скачать DLL и добавить расширение в php.ini. Где его взять?! Если разница в версиях?! У меня PHP версии 5.3.1 можно ли "тупо" добавить DLLку или танцы с бубном посерьезней?!

Заранее благодарен всем откликнувшимся.
P.S.: если тема 564 138 раз уже обсуждалась искренне прошу прощения, я очень сильно ограничен по времени.
2. JustUserR - 14 Августа, 2010 - 00:29:17 - перейти к сообщению
XelaNimed пишет:
Вопрос: насколько я понимаю при использовании Windows можно скачать DLL и добавить расширение в php.ini. Где его взять?! Если разница в версиях?! У меня
Использование динамических библиотек в качестве расширений PHP возможно в том случае - если версия для который они были скомпилированы в достаточной мере соответствует вашему текущему интерпретатору - дело в том что Zend API постепенно меняется и вместе с ним модифицируются анализ и взаимодействие с прогрмнным PHP-кодом Для того чтобы найти требуемую библиотеку вы можете загрузить наиболее полный дистрибутив PHP вашей версии и скопировать из него соответствующий dll-файл - в общем случае все версии установочных файлов и компонентов PHP представлены здесь http://museum.php.net/php5/
Тем не менее вы можете найти соответствующее расширене и другими способами - например через репозитории PECL или PEAR - или путем собственной сборки модуля под windows из исходных кодов для вашей версии PHP что гарантирует большую совместимость
3. Viper - 14 Августа, 2010 - 10:14:27 - перейти к сообщению
XelaNimed имхо лучше http://getid3[dot]org/ чем ломание мозгов и себе и серверу.
4. XelaNimed - 14 Августа, 2010 - 13:30:54 - перейти к сообщению
Viper и JustUserR, спасибо большое за уделенное время моей проблеме.
Viper большое спасибо за подсказку! С лихвой перекрывает все необходимые требования. Результат выполнения немного неудобен, но это уже третье.
Уважаемый Viper, может Вы имеете опыт работы с данной библиотекой?! Не подскажете нерадивому, коим образом запросить лишь необходимые ID3-таги или сие возвращает полный массив информации и уж сам затем выбираешь что нужно?! Может невнимательно прочитал, может ума не хватило, но мне кажется, что возвращается только полный массив. Поправьте меня пожалуйста, если я не прав.
5. XelaNimed - 15 Августа, 2010 - 00:51:47 - перейти к сообщению
JustUserR пишет:
путем собственной сборки модуля под windows из исходных кодов для вашей версии PHP

извиняюсь за невежество, но если можно, не могли бы Вы "на пальцах" объяснить коим образом?! Думаю нужно сказать, что опыта в "компиляциях" ни какого... Если я правильно понимаю, то идем на pear.php[dot]net/package/MP3_Id/docs. И что далее?! Что там нужно скачать, что дальше с этим делать и конечно хотелось бы вариант с хорошей совместимостью.
6. JustUserR - 15 Августа, 2010 - 02:19:11 - перейти к сообщению
XelaNimed пишет:
Viper и JustUserR, спасибо большое за уделенное время моей проблеме.
Пожалуйста! В случае если ваш PHP-скрипт будет использовать для работы с достаточно большим количество файлов для которых требуется извлечение ID3-информации - то более предпочтительным будет использованием именно скомпилированого динамического модуля используемого в виде расширения PHP Дело в том что при работе с двоичными файлами и извлечения/записи информации в них - скомпилированный код будет работать значительно быстее чем выполняющийся на интерпретирующем трансляторе
7. XelaNimed - 15 Августа, 2010 - 20:46:28 - перейти к сообщению
JustUserR пишет:
более предпочтительным будет использованием именно скомпилированого динамического модуля используемого в виде расширения PHP

это то, что и хотелось бы узнать. Пожалуйста, все кто обладает необходимыми знаниями и Вы JustUserR в частности объясните что и откуда скачать, и самое главное, что затем и в какой последовательности делать?! Буду признателен всем откликнувшимся!
P.S.: не знаю есть ли уже на php.su такой материал, но если нет, то хотелось бы увидеть на страницах нашего любимого портала всеобъемлющий материал по компиляции расширений PECL/PEAR(не знаю что правильней) на *nix и Windows платформах.
8. JustUserR - 16 Августа, 2010 - 01:50:28 - перейти к сообщению
XelaNimed пишет:
JustUserR в частности объясните что и откуда скачать, и самое главное, что затем и в какой последовательности делать?! Буду признателен всем откликнувшимся!
Если требуемая динамическая библиотека расширения PHP существует для вашей версии PHP - то осуществить ее подключение можно простым способом копирования соответствуюещго dll-файла в вашу директорию которая определена в файле php.ini для хранения динамических модулей - а также подключить в нем директиву отвечающую за инициализацию данного модуля
Иначе вам придется собираться расширение в ручном режиме путем загрузки исходных кодов PHP вашей версии и требуемого расширение - и последующей их совместной конфигурации и компиляции с помощью утилиты nmake - кроме того в целях уменьшения используемых зависимостей по исходному коду можно использовать некоторые скомпилированные файлы от вашего дистрибутива PHP
В вашем случае вы можете произвести загрузку дистрибутива расширеня ID3 из этого источника http://pecl.php.net/package/id3
9. Viper - 16 Августа, 2010 - 08:38:02 - перейти к сообщению
JustUserR предложил как вариант. тем более что подразумевается хранение инфы в БД после её парсинга из тегов. так будет более кроссплатформенно. т.к. заведомо неизвестно на каком хосте и с какой конфигурацией он будет.

XelaNimed
Либа возвращает полностью всю инфу в виде ассоциативного массива.
Если будете с ней работать то обязательно нужно будет делать проверку на тип файла и наличие инфы, т.к. ключи массива для разных типов не совпадают. Сам на эти грабли наступал Улыбка

По поводу компиляции...
Если либа есть в репозитории то ничего сложного с её установкой нет. Нужно будет только включить её. Если же собирать с исходников то в инете полно инфы по сборке (configure, make).
Под windows действительно прийдется ставить кучу дополнительного софта.
Кстати есть немного инфы по сборке тут http://php[dot]net/manual/en/install[dot][dot][dot]pecl[dot]windows.php
10. XelaNimed - 16 Августа, 2010 - 22:44:57 - перейти к сообщению
JustUserR пишет:
динамическая библиотека расширения PHP существует для вашей версии PHP

я более чем уверен что существует, но загвоздка в том, что я уже предпринимал попытки скачивания и добавления DLL в xampp\php\ext разумеется с добавлением соответствующей строки в php.ini. После этих попыток я получал сообщение об ошибке при перезапуске Apache о том, что добавленная библиотека скомпилирована на несоответствующей моей версии PHP. Где взять DLL, который бы соответствовал моей версии знать не представляется возможным.
JustUserR пишет:
В вашем случае вы можете произвести загрузку дистрибутива расширеня ID3 из этого источника

Загрузил... Насколько я понимаю, это файлы на С++(или что-то типа этого). Что далее с ними делать?!
Viper пишет:
ключи массива для разных типов не совпадают. Сам на эти грабли наступал

Спасибо за предостережение! Приятно, когда люди делятся опытом!
Viper пишет:
Под windows действительно прийдется ставить кучу дополнительного софта.

Viper, если не затруднит, какой именно?!
11. JustUserR - 17 Августа, 2010 - 02:40:58 - перейти к сообщению
XelaNimed пишет:
Где взять DLL, который бы соответствовал моей версии знать не представляется возможным.
Если требуемая динамическая библиотека модуля PHP включена в стандартный дистрибутив - то ее можно получить с помощью загрузки архива с нужной вами версией PHP и копирования файла библиотеки в соответствующий каталог - получить дистрибутивы для абсолютно всех вышедших версий можно здесь http://museum.php.net/php5/
XelaNimed пишет:
Загрузил... Насколько я понимаю, это файлы на С++(или что-то типа этого). Что далее с ними делать?!
Для осуществления сборки расширения PHP из исходным кодов необходимо выполнить несколько дейтсвий - во-первых компиляция расширений происходит с использованием исходных файлов самого PHP нужной версии и наличия некоторых дополнительных зависимостей в качестве которых могут использоваться библиотеки из уже установленной инстанции интепретатора - во-вторых перед осуществления компиляции нужно запустить конфигурационный скрипт который выполнит создание и настройку make-файлов с учетом подключеня требуемых расширений - и в-третьих вам останется запустить программу сборщика nmake && nmake install которая выполнит все необходимые дейтсвия
Конкретно вы можете посмотреть эту http://www[dot]sergey89[dot]ru/notes/ffmpeg-php-windows/ и эту http://phpcoder[dot]ws/2009-05/pishe[dot][dot][dot]ie-php-na-c[dot]html статью
Viper пишет:
JustUserR предложил как вариант. тем более что подразумевается хранение инфы в БД после её парсинга из тегов. так будет более кроссплатформенно. т.к. заведомо неизвестно на каком хосте и с какой конфигурацией он будет.
Предложенный вами вариант также является хорошим решением - и хотя библиотека написанная на интерпретируемом PHP-коде будет работать несколько медленее - но за счет не очень частого использования включенных функций и в целях кросс-платформенности его конечно можно использовать - но интересно рассмотреть и решение с динамическим расширением
12. XelaNimed - 19 Августа, 2010 - 14:37:39 - перейти к сообщению
Viper и JustUserR большое спасибо за помощь и советы. Прочитал про компиляцию... Ясно только одно - это точно не для средних умов. Выбрал вариант предложенный Viper`ом окончательно. Помимо MP3 getID3() работает еще с кучей форматов. Поэтому советую всем, кто столкнулся с похожей ситуацией, использовать именно эту библиотеку.
Еще раз всем спасибо.


Интересно, а кто нибудь занимается переводом документации к библиотекам?!
13. JustUserR - 19 Августа, 2010 - 21:24:41 - перейти к сообщению
XelaNimed пишет:
Viper и JustUserR большое спасибо за помощь и советы. Прочитал про компиляцию... Ясно только одно - это точно не для средних умов
Пожалуйста! Компиляция динамических бибилотек для расширений PHP в действительно является не очень сложным но полезными процессом - дело в том что при осуществлении сборки модуля на основе загрузки исходных кодов PHP и их последующей переконфигурации для активизация требуемого расширения - степень совмесимости и соответственно качества работы должна быть более высоков при причине использования одинакой версии Zend API

 

Powered by ExBB FM 1.0 RC1