Recently, I learned from thinkphp's 'runtime _ ALLINONE 'Experience: I am not afraid of caching and calling chaos. I simply merge all common files into one file, not beautiful...
Copy codeThe Code is as follows: function strip_whitespace ($ content ){
$ StripStr = '';
// Analyze the php source code
$ Tokens = token_get_all ($ content );
$ Last_space = false;
For ($ I = 0, $ j = count ($ tokens); $ I <$ j; $ I ++ ){
If (is_string ($ tokens [$ I]) {
$ Last_space = false;
$ StripStr. = $ tokens [$ I];
}
Else {
Switch ($ tokens [$ I] [0]) {
// Filter various PHP comments
Case T_COMMENT:
Case T_DOC_COMMENT:
Break;
// Filter Spaces
Case T_WHITESPACE:
If (! $ Last_space ){
$ StripStr. = '';
$ Last_space = true;
}
Break;
Default:
$ Last_space = false;
$ StripStr. = $ tokens [$ I] [1];
}
}
}
Return $ stripStr;
}
This user-defined function effectively solves the problem that php_strip_whitespace does not properly understand the built-in uncomment space function <EOT (heredoc ).
Usage
Copy codeThe Code is as follows: $ str = strip_whitespace ('<? Php '. $ str );
We have to splice this before. I don't understand it either. If we don't splice it, the result generated by executing the command is incorrect.
Php_strip_whitespace
String php_strip_whitespace (string $ filename)
If only a single file does not have heredoc, it is recommended to use QuickPhp_strip_whitespaceFunction