rss
Навигация
ИнструментыЯмаПолезные ссылкиЗачем мне блог?Рейтинг контентаКодекс админаФотогалереяi-payrss
Последние записи
Смонтировал видюху, моменты из жизни 2013-15На уазике до ск. Верблюд по Торгашинскому хребтуBreaks волна #9 осенний funkК нам на дачу пришел медведьСтарая бомба! Крутой рифмоплет
Каменты [еще]
2017-05-17 11:25:31 [articles] Владимир:
2016-12-20 17:49:41 [articles] Виталик:
2016-12-01 23:34:25 [news] Meteor:
2016-11-11 03:35:47 [articles] Tata10:
2016-07-27 14:28:19 [articles] Сергей:
2016-05-17 09:56:26 [articles] юра:
2016-04-29 18:03:48 [articles] agatsky.dn:
Теги
Друзья
Блог малова Лучшие стихи зая =) Мед в Красноярске Daniil V. Savenkoff Blog | То, что мне когда-то пригодилось... Велкам в друзья!

Создание своего BBCode (mp3 online)

Февраля
2011 года
07
Теги: web, php,
Раздел: zgbox.ru -> Статьи -> Web -> Создание своего BBCode (mp3 online)
Просмотров: 3062
BBcode как известно это некие текстовые инструкции на странице которые обрабатываются парсером (преобразователем aka функцией). В результате обработки таких инструкций парсер заменяет определенный ббкод определенным html кодом.
Для тех кто в танке:
Используется это часто для того чтобы дать пользователям возможность вставлять картинки, mp3, видио с ютуба, делать спойлеры, форматировать текст и прочие вещи при этом не давать им возможность использовать html теги, php код, скрипты во избежании выполнения вредоносного кода.

В общем bbcode является полезным и удобным инструментом в написаними страниц, новостей и т.д. удобно вставлять какието объекты, один такой пример какраз описан ниже.

Примеры BBCode:
пишем мы например текст, хотим сделать слово жирным.
и если у нас в парсере например реализован bbcode отвечающий за жирность, т.е.
ббкод такого вида: [b]любой текст[/b] то парсер меняет текст заключенный в теги [b]..[/b] на <b>...</b>

Или например для вставки картинки нужен html тег <img src=".../picture.gif"> но от юзера есессно html код мы не обрабатываем, а возможность вставки картинок дать ему надо, значть в нашем парсере должен быть быть ббкод для вставки картинки выглядящий как [img]путь к картинке[/img] и заменяющийся на html код <img src="путь к картинке">.

ББкоды бывают разные в них могут сообщаться параметры типа [url=ссылка]название ссылки[/url] где ссылка это 1 параметр а название ссылки это 2 параметр
Двухпараметрный ббкод нам и нужен, на его примере будем делать тег позволяющий вставлять flash проигрыватель со ссылкой на mp3 файл для прослушивания online.

Релизация:
В результате обработки обработки ббкода [mp3=/mp3/music.mp3]test music[/mp3] нашим парсером, появляется вот такой плеер:

html код вставляющий mp3 плеер выглядит так:


<object classid="0" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" height=15 width=100%>
<embed src="/mp3/xspf_player_slim.swf" flashvars="song_url=/mp3/music.mp3&song_title=test music&player_title=\3&" quality=high type="application/x-shockwave-flash" pluginspage=http://www.macromedia.com/go/getflashplayer align=middle height=16 width=200></embed>
</object>

То есть наша задача преобразовать ббтег [mp3][/mp3] в html код преведенный выше и подставить в него параметры путь и название песни.
Для чего собсно открываем наш файл парсера например parser.php и пишем в него такой код:

<?php

function parseubb($text) {
$text = preg_replace('#\[b\](.*?)\[/b\]#si', '<b>\1</b>', $text);
$text = preg_replace('#\[i\](.*?)\[/i\]#si', '<i>\1</i>', $text);
$text = preg_replace('#\[u\](.*?)\[/u\]#si', '<u>\1</u>', $text);

$text = preg_replace('#\[mp3=([\r\n]*)([^\s\'\";:\+]*?)\](.*?)([\r\n]*)\[/mp3\]#si',
'<object classid="0" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" height=15 width=100%>
<embed src="/mp3/xspf_player_slim.swf" flashvars="song_url=\2&song_title=\3&player_title=\3&" quality=high type="application/x-shockwave-flash" pluginspage=http://www.macromedia.com/go/getflashplayer align=middle height=16 width=200></embed>
</object>', $text);
return $text;
}
?>

Из него мы видим что все преобразования из bbтегов в html код проделывает функция preg_replace, сам flash плеер у нас лежит в /mp3/xspf_player_slim.swf
ну и собстно весь текст перед тем как отобразиться на странице проходит через функцию parseubb() нашего парсера где и преобразуются bbтеги в html.
Комментарии к записи:
асиф 2015-08-24 20:17:48 [ответить]
привет а можна чтобы mp3 играл сылкой а не вы корне сайта
асиф 2015-08-24 20:17:56 [ответить]
привет а можна чтобы mp3 играл сылкой а не вы корне сайта

Добавление комментария

Ваше имя: (Антиспам) Какой сейчас год?
Ваш комментариий: