Heim > Backend-Entwicklung > PHP-Tutorial > PHP-Funktion zum Entfernen von Kommentaren und Leerzeichen

PHP-Funktion zum Entfernen von Kommentaren und Leerzeichen

高洛峰
Freigeben: 2016-10-21 10:04:23
Original
1298 Leute haben es durchsucht

Obwohl es in PHP5 eine php_strip_whitespace-Methode gibt, die den PHP-Quellcode nach dem Entfernen von Kommentaren und Leerzeichen zurückgeben kann, finden Sie hier eine eigene Methode, die auch Leerzeichen und Kommentare im Code entfernen kann lautet wie folgt:


In PHP5 integrierte Funktion:

//返回删除注释和空格后的PHP源码
php_strip_whitespace()
Nach dem Login kopieren

Beispiel:

<?php
// PHP comment here
 
/*
 * Another PHP comment
 */
 
echo php_strip_whitespace(__FILE__);
//Newlines are considered whitespace, and are removed too:
do_nothing();
?>
Nach dem Login kopieren

Benutzerdefinierte Funktion:

  /**
 * 去除代码中的空白和注释
 * @param string $content 代码内容
 * @return string
 */
function strip_whitespace($content) {
    $stripStr   = &#39;&#39;;
    //分析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  .= &#39; &#39;;
                        $last_space = true;
                    }
                    break;
                case T_START_HEREDOC:
                    $stripStr .= "<<<THINK\n";
                    break;
                case T_END_HEREDOC:
                    $stripStr .= "THINK;\n";
                    for($k = $i+1; $k < $j; $k++) {
                        if(is_string($tokens[$k]) && $tokens[$k] == &#39;;&#39;) {
                            $i = $k;
                            break;
                        } else if($tokens[$k][0] == T_CLOSE_TAG) {
                            break;
                        }
                    }
                    break;
                default:
                    $last_space = false;
                    $stripStr  .= $tokens[$i][1];
            }
        }
    }
    return $stripStr;
}
Nach dem Login kopieren


Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage