View Full Version : PHP Code colouring
missing-score
04-15-2003, 08: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.
Galdo
04-15-2003, 08:41 PM
PHP has a built in function for this.
Have a look here (http://www.php.net/manual/en/function.highlight-string.php).
missing-score
04-15-2003, 08:44 PM
Thanks.
Thanks for the link! That was alot easier than I was expecting! :D
missing-score
04-15-2003, 09: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?
duniyadnd
04-16-2003, 06: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.
Duniyadnd
missing-score
04-17-2003, 04:07 PM
Sorry, that doesnt seem to work.
beetle
04-17-2003, 06: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]
missing-score
04-17-2003, 07: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.
beetle
04-17-2003, 07: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"
missing-score
04-17-2003, 07:41 PM
Sorry, still no luck.
Here is my code
$_POST['code'] = preg_replace( "/\[php\](.*)\[\/ php\]/i", highlight_string( "$1" ), $_POST['code'] );
missing-score
04-17-2003, 07:42 PM
I have \\ behind all the [,], and /, But vB strips them out.
beetle
04-17-2003, 07: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
missing-score
04-17-2003, 09:03 PM
Ok, I'll have another go thanks.
vBulletin® v3.8.2, Copyright ©2000-2012, Jelsoft Enterprises Ltd.