This is the second article looking at how to allow your visitors to post content using bbCode. While the previous article looked at the client-side processing this article will deal with how to treat bbCode formatted text once it reaches your server.
http://www.iceteks.com/articles.php/javascript2/1
Archived topic from Iceteks, old topic ID:3266, old post ID:26505
Regular expressions and all things nice
- Red Squirrel
- Posts: 29209
- Joined: Wed Dec 18, 2002 12:14 am
- Location: Northern Ontario
- Contact:
Regular expressions and all things nice
Honk if you love Jesus, text if you want to meet Him!
Regular expressions and all things nice
Thanks for taking the time to read the article kryptx. You're absolutely right. I maintain linebreaks in the cascade stylesheet by setting whitespace as pre:
Code: Select all
.code_box {font-weight:normal;
font-family: Courier;
white-space:pre;
background-color:#00FFFF;
border-style: solid;
border-width: 1px;
border-color: #959595;
text-indent: 0px;
}[code]
I also apply the nl2br function to the whole post which adds extra line breaks into the code tags.
The best way of dealing with it is probably just deleting whitespace:pre from the stylesheet. Thanks for picking up on the error! :)
hi tayfun, I can't say I've ever seen that error before. I thought at first you may have copied the function into your script twice but on testing this I don't get an error.
You could try using [url=http://www.php.net/function_exists]function_exists[/url] and before declaring the function and see what it comes back with. Not much else I can suggest I'm afraid.
[color=#888888][size=85]Archived topic from Iceteks, old topic ID:3266, old post ID:27946[/size][/color]
- Red Squirrel
- Posts: 29209
- Joined: Wed Dec 18, 2002 12:14 am
- Location: Northern Ontario
- Contact:
Regular expressions and all things nice
Yeah but trying to do anything strictly xhtml compliant is nearly impossible and has no benifits, usually just sticking to W3C html 5.02 (or whatever that number is:P) should almost guarantee cross browser compatability. Unless you want a really crappy site <u> <b> <i> are rather useful. You can always use css but then that increases the file size.
ex: <font style="font-weight:bold">hi</font>
vs
<b>hi</b>
Even with a class it's longer:
<font class="b">hi</font>
Though it would be possible to get bbcode to produce this, but it would only increase the file size of the DB.
Archived topic from Iceteks, old topic ID:3266, old post ID:31341
ex: <font style="font-weight:bold">hi</font>
vs
<b>hi</b>
Even with a class it's longer:
<font class="b">hi</font>
Though it would be possible to get bbcode to produce this, but it would only increase the file size of the DB.
Archived topic from Iceteks, old topic ID:3266, old post ID:31341
Honk if you love Jesus, text if you want to meet Him!
- Red Squirrel
- Posts: 29209
- Joined: Wed Dec 18, 2002 12:14 am
- Location: Northern Ontario
- Contact:
Regular expressions and all things nice
Yes Xhtml is great if you can be diciplined to actually code that strictly, but in my opinion it's too much, just plain normal W3C is good enough for me.
Archived topic from Iceteks, old topic ID:3266, old post ID:31402
Archived topic from Iceteks, old topic ID:3266, old post ID:31402
Honk if you love Jesus, text if you want to meet Him!
Regular expressions and all things nice
Yes yes I dont nkow why im even answering to this post but... Yes.
Archived topic from Iceteks, old topic ID:3266, old post ID:31404
Archived topic from Iceteks, old topic ID:3266, old post ID:31404
- Red Squirrel
- Posts: 29209
- Joined: Wed Dec 18, 2002 12:14 am
- Location: Northern Ontario
- Contact:
Regular expressions and all things nice
Hey sorry to the person who just posted and got hit with the spam bot. really not sure why it snapped. Must be the word compliant, thats often in spam.
Feel free to register as the spam bot validation wears off after some posts.
Archived topic from Iceteks, old topic ID:3266, old post ID:31493
Feel free to register as the spam bot validation wears off after some posts.
Archived topic from Iceteks, old topic ID:3266, old post ID:31493
Honk if you love Jesus, text if you want to meet Him!
Regular expressions and all things nice
I have got the form with the BBcode working fine now after reading the article properly but I am now stuck on converting teh BBcode into HTML.
First thing...is the file supposed to be called bbcode.php like referred to in the first part of the article?
Second thing....is there a complete listing of the bbcode.php? I have gone through the second part and put the code together but when i try and preview what I have done...it just echoes this
Archived topic from Iceteks, old topic ID:3266, old post ID:38237
First thing...is the file supposed to be called bbcode.php like referred to in the first part of the article?
Second thing....is there a complete listing of the bbcode.php? I have gone through the second part and put the code together but when i try and preview what I have done...it just echoes this
How do i get this working?function output_post ($post) { //Make safe any html $post_no_html = htmlspecialchars($post); //Make sure there is no whitespace at the end of the message //It's conceivable that the user will start their message with whitespace $post_abridged = chop($post_no_html); //Callback function for preg_replace_callback below function convert_for_html ($matches) { $regex[0] = "["; $regex[1] = "]"; $replace[0] = "["; $replace[1] = "]"; ksort($regex); ksort($replace); $treated = str_replace($regex, $replace, $matches[1]); $output = 'Code:
' . $treated . '
'; return $output; } //Convert code tags $code_treated = preg_replace_callback( "//s", "convert_for_html", $post_abridged); //Arrays for the bbCode replacements $bbcode_regex = array(0 => '/(.+?)/s', 1 => '/(.+?)/s', 2 => '/(.+?)/s', 3 => '/Code: Select all
(.+?)
/s', 4 => '/(.+?)/s', 5 => '/(.+?)/s', 6 => '/(.+?)/s', 7 => '/[img](.+?)[/img]/s', 8 => '/[color=(.+?)](.+?)[/color]/s', 9 => '/[size=(.+?)](.+?)[/size]/s'); $bbcode_replace = array(0 => '$1', 1 => '$1', 2 => '$1', 3 => 'Quote:(.+?) wrote:(.+?)
$1
', 4 => '$1 said:
$2
', 5 => '$1', 6 => '$2', 7 => '', 8 => '$2', 9 => '$2'); ksort($bbcode_regex); ksort($bbcode_replace); //preg_replace to convert all remaining bbCode tags $post_bbcode_treated = preg_replace($bbcode_regex, $bbcode_replace, $code_treated); //Convert new lines to
$post_with_br = nl2br($post_bbcode_treated); echo $post_with_br; };
Archived topic from Iceteks, old topic ID:3266, old post ID:38237
Regular expressions and all things nice
I have worked out why it wouldn't work before by following the article again but I still can't output what is entered in the form. All I get is a blank page
Archived topic from Iceteks, old topic ID:3266, old post ID:38239
Archived topic from Iceteks, old topic ID:3266, old post ID:38239
Regular expressions and all things nice
I also had a "blank page" problem, but I've resolved it.
When I saw the function returned an empty string, I checked the code, and after copying outside of the function, I found out that it failed because I had missed the "code" part. I had:
When I saw the function returned an empty string, I checked the code, and after copying outside of the function, I found out that it failed because I had missed the "code" part. I had:
Code: Select all
$post_abridged = chop($post_no_html);
$bbcode_regex = [...]
$post_bbcode_treated = preg_replace($bbcode_regex, $bbcode_replace, $code_treated);[code]
I changed "$code_treated" to "$post_abridged", because I hadn't defined the "$code_treated" variable at missing the "code" part.
So if you find that the script returns a blank page, make sure you haven't missed any step; and if you have, change the variable name.
[Sorry about my bad English: I'm Spanish and I'm not very confident with it]
[color=#888888][size=85]Archived topic from Iceteks, old topic ID:3266, old post ID:38725[/size][/color]