The Little Guy Posted March 10, 2009 Share Posted March 10, 2009 I have user comments on my site, and the user can post php in there comments. Like this: This is a test with PHP <?php echo ''hello test''; ?> How would I extract the PHP, and place it in the highlight_string function, and leave the rest alone? Link to comment https://forums.phpfreaks.com/topic/148723-extract-php-code/ Share on other sites More sharing options...
The Little Guy Posted March 10, 2009 Author Share Posted March 10, 2009 I found this way to work (I think) is it a good way or is there a better one? $comment = preg_split("/^(<\?php.*?\?>)/ms", $cow['comment'], -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY); foreach($comment as $line){ preg_match('/<\?php/s', $line, $matches); if($matches[0]){ highlight_string($line); }else{ echo $line; } } Link to comment https://forums.phpfreaks.com/topic/148723-extract-php-code/#findComment-780911 Share on other sites More sharing options...
The Little Guy Posted March 10, 2009 Author Share Posted March 10, 2009 Hmm, the above isn't amazing... If I do this: This is a test, with PHP <?php echo 'hello test'; ?> No php here <?php echo 'hello test'; $blue = '?>'; ?> the value for variable $blue, the parser thinks that that is where I want to stop, which it isn't so that is one bug... Link to comment https://forums.phpfreaks.com/topic/148723-extract-php-code/#findComment-780914 Share on other sites More sharing options...
The Little Guy Posted March 10, 2009 Author Share Posted March 10, 2009 I think I got it Link to comment https://forums.phpfreaks.com/topic/148723-extract-php-code/#findComment-780915 Share on other sites More sharing options...
.josh Posted March 10, 2009 Share Posted March 10, 2009 just read the notes in the manual for highlight_string() there's a ton of entries doing exactly what you want. Link to comment https://forums.phpfreaks.com/topic/148723-extract-php-code/#findComment-780933 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.