04-15-2003, 09:28 PM
Right, I hope I am posting this in the right place. I assume I am cos I think I will need PHP RegEx.
As on this board you get PHP code colouring. Is there a way that this could be done? Im not that good with regEx.
Any help appreciated.
04-15-2003, 09:41 PM
PHP has a built in function for this.
Have a look here (http://www.php.net/manual/en/function.highlight-string.php).
04-15-2003, 09:44 PM
Thanks for the link! That was alot easier than I was expecting! :D
04-15-2003, 10:06 PM
Right, that works. Now, (this is why I thought RegExp) how do I make all text inside a [php] tag coloured in that way?
04-16-2003, 07:15 PM
http://www.php.net/manual/en/function.ereg.php would be the function you using.
Could go something like this:
if (ereg('[php](.*)[/ php]',$string))
highlight your code
*Note, there is a gap between the / and php, that's just cause the format came out messed up if they were linked up together.
04-17-2003, 05:07 PM
Sorry, that doesnt seem to work.
04-17-2003, 07:26 PM
First, don't use the ereg functions, use the preg ones. 2nd, [ and ] should be escaped in a pattern, otherwise they dfine a character set
$someString = preg_replace( "/\\[php](.*)\\[/ php]/i", highlight_string( "$1" ), $someString );That should work
Note: remove the space in [/ php]
04-17-2003, 08:06 PM
What is the variable 1, is that defined in the (.*) bit?
PS: I knew the  should be unescaped, so I tried that too.
Thanks beetle, Ill give it a go.
04-17-2003, 08:23 PM
$1 is not a variable per se, but a backreference to the 1st matched parenthical in the pattern. So, everything matched by (.*) is retrieved in the replace argument with "$1"
04-17-2003, 08:41 PM
Sorry, still no luck.
Here is my code
$_POST['code'] = preg_replace( "/\[php\](.*)\[\/ php\]/i", highlight_string( "$1" ), $_POST['code'] );
04-17-2003, 08:42 PM
I have \\ behind all the [,], and /, But vB strips them out.
04-17-2003, 08:49 PM
Can you write to a superglobal array like that? I'm not sure, but I think those are read-only. Use another variable to store the result
04-17-2003, 10:03 PM
Ok, I'll have another go thanks.