PHP文件去掉PHP注釋空格的函數(shù)分析(PHP代碼壓縮)
更新時(shí)間:2013年07月02日 10:54:56 作者:
我自己嘗試過正則,但是發(fā)現(xiàn)在過濾單行注釋等方面不盡如意,很容易出錯(cuò)。無意中看到了某sns里面的strip_whitespace函數(shù),特進(jìn)行分享,希望能對(duì)需要的朋友有所幫助
最近我從thinkphp的‘RUNTIME_ALLINONE'借鑒到經(jīng)驗(yàn):不怕緩存多,就怕調(diào)用亂,索性將所有常用的文件全部合并成一個(gè)文件,豈不美哉。。。
function strip_whitespace($content) {
$stripStr = '';
//分析php源碼
$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]){
//過濾各種PHP注釋
case T_COMMENT:
case T_DOC_COMMENT:
break;
//過濾空格
case T_WHITESPACE:
if (!$last_space){
$stripStr .= ' ';
$last_space = true;
}
break;
default:
$last_space = false;
$stripStr .= $tokens[$i][1];
}
}
}
return $stripStr;
}
該自定義函數(shù)有效解決了php_strip_whitespace系統(tǒng)內(nèi)置去注釋空格函數(shù)不能正確理解<<<EOT(heredoc)的問題
使用方法
$str = strip_whitespace('<?php'.$str);
前面一定要拼接這個(gè),我也搞不懂,不拼接的話執(zhí)行生成的結(jié)果是錯(cuò)誤的結(jié)果
php_strip_whitespace
string php_strip_whitespace (string$filename )
如果僅僅是單文件并且沒有heredoc的話,還是建議使用快捷的php_strip_whitespace函數(shù)
復(fù)制代碼 代碼如下:
function strip_whitespace($content) {
$stripStr = '';
//分析php源碼
$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]){
//過濾各種PHP注釋
case T_COMMENT:
case T_DOC_COMMENT:
break;
//過濾空格
case T_WHITESPACE:
if (!$last_space){
$stripStr .= ' ';
$last_space = true;
}
break;
default:
$last_space = false;
$stripStr .= $tokens[$i][1];
}
}
}
return $stripStr;
}
該自定義函數(shù)有效解決了php_strip_whitespace系統(tǒng)內(nèi)置去注釋空格函數(shù)不能正確理解<<<EOT(heredoc)的問題
使用方法
復(fù)制代碼 代碼如下:
$str = strip_whitespace('<?php'.$str);
前面一定要拼接這個(gè),我也搞不懂,不拼接的話執(zhí)行生成的結(jié)果是錯(cuò)誤的結(jié)果
php_strip_whitespace
string php_strip_whitespace (string$filename )
如果僅僅是單文件并且沒有heredoc的話,還是建議使用快捷的php_strip_whitespace函數(shù)
相關(guān)文章
php常用字符串查找函數(shù)strstr()與strpos()實(shí)例分析
這篇文章主要介紹了php常用字符串查找函數(shù)strstr()與strpos(),結(jié)合具體實(shí)例形式分析了php字符串查找函數(shù)strstr()與strpos()的具體功能、用法、區(qū)別及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-06-06PHP頁面跳轉(zhuǎn)操作實(shí)例分析(header方法)
這篇文章主要介紹了PHP頁面跳轉(zhuǎn)操作,結(jié)合實(shí)例形式對(duì)比分析了HTML跳轉(zhuǎn)與php使用header方法跳轉(zhuǎn)的相關(guān)操作技巧與注意事項(xiàng),并給出了一個(gè)跳轉(zhuǎn)的封裝函數(shù)供大家參考,需要的朋友可以參考下2016-09-09PHP htmlspecialchars_decode()函數(shù)用法講解
今天小編就為大家分享一篇關(guān)于PHP htmlspecialchars_decode()函數(shù)用法講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03PHP實(shí)現(xiàn)將多個(gè)文件壓縮成zip格式并下載到本地的方法示例
這篇文章主要介紹了PHP實(shí)現(xiàn)將多個(gè)文件壓縮成zip格式并下載到本地的方法,涉及php針對(duì)文件與目錄的讀寫、判斷與zip壓縮相關(guān)操作技巧,需要的朋友可以參考下2018-05-05使用PHP獲取兩個(gè)數(shù)組之間的差集、并集、交集方法
這篇文章主要給大家介紹了使用PHP獲取兩個(gè)數(shù)組之間的差集、并集、交集方法,文章通過代碼示例介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2023-11-11PHP使用pcntl_fork實(shí)現(xiàn)多進(jìn)程下載圖片的方法
這篇文章主要介紹了PHP使用pcntl_fork實(shí)現(xiàn)多進(jìn)程下載圖片的方法,較為詳細(xì)的分析了pcntl_fork的原理與用法,以及使用pcntl_fork實(shí)現(xiàn)多進(jìn)程下載圖片的方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-12-12