Tom Whitbread wrote: > Can anyone explain why this is happening. > > I am using the following code For giving code examples on my website > with syntax highlighting > > $text = '<?php \$my_code = "echo 'text text text text'; \$foo = > 'bar';"; example_function(\$my_code); ?>'; This is not a valid PHP statement. The ' directly before 'text text text text' will match the first ', and the rest of this is gibberish. Let's assume, however, that you actually have \ in front of each embedded ' in your string. To avoid confusion, I'd also change each \$ to \\$ so that it is clear that you want the \ to be embedded in your string. > $body = preg_replace('/<(.*?)>/es', 'highlight_string("<\\1>", > true)', $text); At this point, you are replacing HTML entities < and > with their corresponding charactes < and > which is fine, I suppose, but... > echo $body; //Returns: <?php = 'echo \'text text text text\'\'; = > \'bar\'; highlight_string(, true); ?> Here you are *NOT* going to see the PHP source, because to the *BROWSER* the < and > look like an HTML tag. The browsers will simply IGNORE tags they don't understand and won't display/do anything with them. > //I want: <?php $my_code = "echo 'text text text text'; $foo = 'bar';"; > example_function($my_code); ?> You may or may not need to NOT do the ereg_replace you are doing, and you may or may not want to use http://php.net/htmlentities and/or http://php.net/highlight_string -- Like Music? http://l-i-e.com/artists.htm -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php