html5 video/audio support - still needs multiple source
selection, and check that it isn't blocked by html purifier
This commit is contained in:
parent
98dcc19511
commit
9296d178b3
2 changed files with 58 additions and 41 deletions
|
@ -77,6 +77,13 @@ function bbcode($Text) {
|
||||||
// Images
|
// Images
|
||||||
// [img]pathtoimage[/img]
|
// [img]pathtoimage[/img]
|
||||||
$Text = preg_replace("/\[img\](.+?)\[\/img\]/", '<img src="$1">', $Text);
|
$Text = preg_replace("/\[img\](.+?)\[\/img\]/", '<img src="$1">', $Text);
|
||||||
|
|
||||||
|
// html5 video and audio
|
||||||
|
|
||||||
|
$Text = preg_replace("/\[video\](.+?)\[\/video\]/", '<video src="$1" controls="controls" width="425" height="350">$1</video>', $Text);
|
||||||
|
|
||||||
|
$Text = preg_replace("/\[audio\](.+?)\[\/audio\]/", '<audio src="$1" controls="controls">$1</audio>', $Text);
|
||||||
|
|
||||||
|
|
||||||
// [img=widthxheight]image source[/img]
|
// [img=widthxheight]image source[/img]
|
||||||
$Text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.+?)\[\/img\]/", '<img src="$3" height="$2" width="$1">', $Text);
|
$Text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.+?)\[\/img\]/", '<img src="$3" height="$2" width="$1">', $Text);
|
||||||
|
|
|
@ -1,52 +1,62 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* html2bbcode
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
function html2bbcode($s) {
|
function html2bbcode($s) {
|
||||||
|
|
||||||
|
// Tags to Find
|
||||||
|
|
||||||
// Tags to Find
|
$htmltags = array(
|
||||||
$htmltags = array(
|
'/\n/is',
|
||||||
'/\n/is',
|
'/\<b\>(.*?)\<\/b\>/is',
|
||||||
'/\<b\>(.*?)\<\/b\>/is',
|
'/\<i\>(.*?)\<\/i\>/is',
|
||||||
'/\<i\>(.*?)\<\/i\>/is',
|
'/\<u\>(.*?)\<\/u\>/is',
|
||||||
'/\<u\>(.*?)\<\/u\>/is',
|
'/\<ul\>(.*?)\<\/ul\>/is',
|
||||||
'/\<ul\>(.*?)\<\/ul\>/is',
|
'/\<li\>(.*?)\<\/li\>/is',
|
||||||
'/\<li\>(.*?)\<\/li\>/is',
|
'/\<img(.*?) src=\"(.*?)\" (.*?)\>/is',
|
||||||
'/\<img(.*?) src=\"(.*?)\" (.*?)\>/is',
|
'/\<div(.*?)\>(.*?)\<\/div\>/is',
|
||||||
'/\<div(.*?)\>(.*?)\<\/div\>/is',
|
'/\<br(.*?)\>/is',
|
||||||
'/\<br(.*?)\>/is',
|
'/\<strong\>(.*?)\<\/strong\>/is',
|
||||||
'/\<strong\>(.*?)\<\/strong\>/is',
|
'/\<a href=\"(.*?)\"(.*?)\>(.*?)\<\/a\>/is',
|
||||||
'/\<a href=\"(.*?)\"(.*?)\>(.*?)\<\/a\>/is',
|
'/\<code\>(.*?)\<\/code\>/is',
|
||||||
'/\<code\>(.*?)\<\/code\>/is',
|
'/\<span style=\"color:(.*?)\"\>(.*?)\<\/span\>/is',
|
||||||
'/\<span style=\"color:(.*?)\"\>(.*?)\<\/span\>/is',
|
'/\<blockquote\>(.*?)\<\/blockquote\>/is',
|
||||||
'/\<blockquote\>(.*?)\<\/blockquote\>/is',
|
'/\<video(.*?) src=\"(.*?)\" (.*?)\>(.*?)</video>/is',
|
||||||
|
'/\<audio(.*?) src=\"(.*?)\" (.*?)\>(.*?)</audio>/is',
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|
||||||
// Replace with
|
// Replace with
|
||||||
$bbtags = array(
|
|
||||||
'',
|
|
||||||
'[b]$1[/b]',
|
|
||||||
'[i]$1[/i]',
|
|
||||||
'[u]$1[/u]',
|
|
||||||
'[list]$1[/list]',
|
|
||||||
'[*]$1',
|
|
||||||
'[img]$2[/img]',
|
|
||||||
'$2',
|
|
||||||
"\n",
|
|
||||||
'[b]$1[/b]',
|
|
||||||
'[url=$1]$3[/url]',
|
|
||||||
'[code]$1[/code]',
|
|
||||||
'[color="$1"]$2[/color]',
|
|
||||||
'[quote]$1[/quote]',
|
|
||||||
);
|
|
||||||
|
|
||||||
// Replace $htmltags in $text with $bbtags
|
$bbtags = array(
|
||||||
$text = preg_replace ($htmltags, $bbtags, $s);
|
'',
|
||||||
|
'[b]$1[/b]',
|
||||||
|
'[i]$1[/i]',
|
||||||
|
'[u]$1[/u]',
|
||||||
|
'[list]$1[/list]',
|
||||||
|
'[*]$1',
|
||||||
|
'[img]$2[/img]',
|
||||||
|
'$2',
|
||||||
|
"\n",
|
||||||
|
'[b]$1[/b]',
|
||||||
|
'[url=$1]$3[/url]',
|
||||||
|
'[code]$1[/code]',
|
||||||
|
'[color="$1"]$2[/color]',
|
||||||
|
'[quote]$1[/quote]',
|
||||||
|
'[video]$1[/video]',
|
||||||
|
'[audio]$1[/audio]',
|
||||||
|
);
|
||||||
|
|
||||||
call_hooks('html2bbcode', $text);
|
// Replace $htmltags in $text with $bbtags
|
||||||
|
$text = preg_replace ($htmltags, $bbtags, $s);
|
||||||
|
|
||||||
|
call_hooks('html2bbcode', $text);
|
||||||
|
|
||||||
|
// Strip all other HTML tags
|
||||||
|
$text = strip_tags($text);
|
||||||
|
return $text;
|
||||||
|
}
|
||||||
|
|
||||||
// Strip all other HTML tags
|
|
||||||
$text = strip_tags($text);
|
|
||||||
return $text;
|
|
||||||
}
|
|
Loading…
Reference in a new issue