aboutsummaryrefslogtreecommitdiffstats
path: root/include/html2bbcode.php
blob: f5790217a60c66160d3323d9df5b0cb27d8c2311 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php

/**
 * html2bbcode
 */


function html2bbcode($s) {

	// Tags to Find

	$htmltags = array(
		'/\n/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(
		'',
		'[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]',
	);

	// 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;
}