PDA

View Full Version : regex problem, could you help?



Bob Day
Sat 3rd Nov '01, 2:05pm
I'm making a news script and I'd like to use vB Code in my script.

here is my function text_to_html():

function text_to_html($data) {
$data = trim ($data);
$data = strip_tags ($data);
$data = nl2br ($data);

$patterns = array();
$replacements = array();
// xxxx://www.mysite.com code..
$patterns[0] = "#\([a-z]+?://){1}(.*?)\[/url\]#si";
$replacements[0] = '<A HREF="\1\2" TARGET="_blank">\1\2</A>';
// [url]www.mysite.com code.. (
$patterns[1] = "#\(.*?)\[/url\]#si";
$replacements[1] = '<A HREF="http://\1" TARGET="_blank">\1</A>';
// MySiTE (xxxx://www.mynsite.com) code..
$patterns[2] = "#\+?://){1}(.*?)\](.*?)\[/url\]#si";
$replacements[2] = '<A HREF="\1\2" TARGET="_blank">\3</A>';
// [url=www.mysite.com]MySITE (([a-z) code..
$patterns[3] = "#\[url=(.*?)\](.*?)\[/url\]#si";
$replacements[3] = '<A HREF="http://\1" TARGET="_blank">\2</A>';
// my@mail.com code...
$patterns[4] = "#\[email\](.*?)\[/email\]#si";
$replacements[4] = '<A HREF="mailto:\1">\1</A>';
// MySITE (www.mijnsite.com) code..
$patterns[5] = "#\[email=(.*?)\](.*?)\[/email\]#si";
$replacements[5] = '<A HREF="mailto:\1">\2</A>';
// bold text code...
$patterns[6] = "#\[b\](.*?)\[/b\]#si";
$replacements[6] = '<B>\1</B>';
// italic text code...
$patterns[7] = "#\[i\](.*?)\[/i\]#si";
$replacements[7] = '<I>\1</I>';
// [u]uderlined text code...
$patterns[8] = "#\[u\](.*?)\[/u\]#si";
$replacements[8] = '<U>\1</U>';

$data = preg_replace($patterns, $replacements, $data);

return $data;
}
I also like to do the [list]-tag, but I don't understand regex :(
So could someone do $patterns[9], $replacements[9] for me?

Use the 'quote'-button to see the above code whitout being mest up, is there no tag?

thanks in advantage,

Bob Day