What’s the best way to remove comments from a PHP file?
I want to do something similar to strip-whitespace() – but it shouldn’t remove the line breaks as well.
For example,
I want this:
<?PHP // something if ($whatsit) { do_something(); # we do something here echo '<html>Some embedded HTML</html>'; } /* another long comment */ some_more_code(); ?>
to become:
<?PHP if ($whatsit) { do_something(); echo '<html>Some embedded HTML</html>'; } some_more_code(); ?>
(Although if the empty lines remain where comments are removed, that wouldn’t be OK.)
It may not be possible, because of the requirement to preserve embedded HTML – that’s what’s tripped up the things that have come up on Google.
I’d use tokenizer. Here’s my solution. It should work on both PHP 4 and 5: