Maison  >  Article  >  développement back-end  >  Comment supprimer efficacement les commentaires du code PHP tout en préservant la structure ?

Comment supprimer efficacement les commentaires du code PHP tout en préservant la structure ?

DDD
DDDoriginal
2024-10-23 10:53:28132parcourir

How to Effectively Remove PHP Code Comments While Preserving Structure?

Approche efficace pour supprimer les commentaires du code PHP

Pour éliminer efficacement les commentaires d'un fichier PHP tout en préservant les sauts de ligne et le code HTML intégré, envisagez d'exploiter theTokenizer fonction. Cette approche garantit la précision de la suppression des commentaires, même pour les structures de code complexes.

Implémentez la solution suivante pour les environnements PHP 4 et 5 :

<code class="php">$fileStr = file_get_contents('path/to/file');
$newStr = '';

$commentTokens = array(T_COMMENT);

if (defined('T_DOC_COMMENT')) {
    $commentTokens[] = T_DOC_COMMENT; // PHP 5
}

if (defined('T_ML_COMMENT')) {
    $commentTokens[] = T_ML_COMMENT; // PHP 4
}

$tokens = token_get_all($fileStr);

foreach ($tokens as $token) {
    if (is_array($token)) {
        if (in_array($token[0], $commentTokens)) {
            continue;
        }

        $token = $token[1];
    }

    $newStr .= $token;
}

echo $newStr;</code>

Cette solution tokenise efficacement le code, identifie et ignore les jetons de commentaires et recombine les jetons restants en une chaîne modifiée ($newStr) sans commentaires. Cette approche préserve avec succès les sauts de ligne et le HTML intégré, atteignant ainsi le résultat souhaité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn