69 lines
1.3 KiB
PHP
69 lines
1.3 KiB
PHP
<?php
|
|
|
|
/**
|
|
* html2bbcode
|
|
*/
|
|
|
|
|
|
function html2bbcode($s) {
|
|
|
|
// Tags to Find
|
|
|
|
$htmltags = array(
|
|
'/\n/is',
|
|
'/\<pre\>(.*?)\<\/pre\>/is',
|
|
'/\<p(.*?)\>/is',
|
|
'/\<\/p\>/is',
|
|
'/\<b\>(.*?)\<\/b\>/is',
|
|
'/\<i\>(.*?)\<\/i\>/is',
|
|
'/\<u\>(.*?)\<\/u\>/is',
|
|
'/\<ul\>(.*?)\<\/ul\>/is',
|
|
'/\<li\>(.*?)\<\/li\>/is',
|
|
'/\<img(.*?) src=\"(.*?)\" (.*?)\>/is',
|
|
'/\<div(.*?)\>(.*?)\<\/div\>/is',
|
|
'/\<br(.*?)\>/is',
|
|
'/\<strong\>(.*?)\<\/strong\>/is',
|
|
'/\<a (.*?)href=\"(.*?)\"(.*?)\>(.*?)\<\/a\>/is',
|
|
'/\<code\>(.*?)\<\/code\>/is',
|
|
'/\<span style=\"color:(.*?)\"\>(.*?)\<\/span\>/is',
|
|
'/\<blockquote\>(.*?)\<\/blockquote\>/is',
|
|
'/\<video(.*?) src=\"(.*?)\" (.*?)\>(.*?)\<\/video\>/is',
|
|
'/\<audio(.*?) src=\"(.*?)\" (.*?)\>(.*?)\<\/audio\>/is',
|
|
|
|
);
|
|
|
|
// Replace with
|
|
|
|
$bbtags = array(
|
|
'',
|
|
'[code]$1[/code]',
|
|
'',
|
|
"\n",
|
|
'[b]$1[/b]',
|
|
'[i]$1[/i]',
|
|
'[u]$1[/u]',
|
|
'[list]$1[/list]',
|
|
'[*]$1',
|
|
'[img]$2[/img]',
|
|
'$2',
|
|
"\n",
|
|
'[b]$1[/b]',
|
|
'[url=$2]$4[/url]',
|
|
'[code]$1[/code]',
|
|
'[color="$1"]$2[/color]',
|
|
'[quote]$1[/quote]',
|
|
'[video]$1[/video]',
|
|
'[audio]$1[/audio]',
|
|
);
|
|
|
|
// 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;
|
|
}
|
|
|