W3docs

php_strip_whitespace()

Découvrez la fonction PHP php_strip_whitespace() : syntaxe, fonctionnement, exemples pratiques et comparaison avec trim().

La fonction PHP php_strip_whitespace() lit un fichier source PHP et retourne son contenu avec tous les commentaires et les espaces blancs inutiles supprimés — exactement le résultat que vous obtiendriez en exécutant le fichier avec php -w en ligne de commande. Cette page couvre la syntaxe, ce que la fonction supprime (et ne supprime pas), un exemple complet exécutable, les compromis de performance, et comment elle se compare aux fonctions de suppression de chaînes que les gens confondent souvent avec elle.

Syntaxe

php_strip_whitespace(string $filename): string
PartieSignification
$filenameChemin vers le fichier PHP à lire et à nettoyer.
Valeur de retourUne chaîne contenant le source du fichier avec les commentaires et les espaces blancs redondants supprimés. Retourne une chaîne vide en cas d'échec (par exemple, si le fichier n'existe pas).

La fonction n'exécute pas le fichier — elle se contente de tokeniser son source. Elle ne modifie pas non plus le fichier original sur le disque ; elle retourne le source nettoyé sous forme de nouvelle chaîne, vous laissant décider quoi en faire.

Ce qui est supprimé

php_strip_whitespace() utilise le propre tokeniseur de PHP, donc elle supprime avec une connaissance complète de la syntaxe PHP — elle ne casse jamais votre code en supprimant des espaces blancs importants. Plus précisément, elle supprime :

  • Tous les styles de commentaires : // ligne, # ligne, et /* bloc */ (y compris /** docblocks */).
  • Les espaces blancs redondants entre les tokens, en réduisant les successions d'espaces, de tabulations et de sauts de ligne.

Elle prend soin de préserver les espaces blancs à l'intérieur des littéraux de chaîne et tout contenu en dehors des balises <?php … ?> (HTML brut), car les supprimer changerait la sortie du programme.

Comment utiliser php_strip_whitespace()

Passez le chemin du fichier que vous souhaitez nettoyer. L'exemple ci-dessous écrit un petit fichier, puis le nettoie pour que vous puissiez voir la différence :

<?php
// Create a sample file with comments and generous spacing.
$source = <<<'PHP'
<?php

// Greet the visitor.
function greet(string $name): string
{
    /* Build the message */
    return "Hello,   $name!";   // spaces inside the string are kept
}

echo greet("World");
PHP;

file_put_contents('sample.php', $source);

// Strip comments and whitespace.
$stripped = php_strip_whitespace('sample.php');

echo $stripped;

Les commentaires et les lignes vides supplémentaires ont disparu, tandis que les espaces à l'intérieur de la chaîne "Hello, $name!" restent intacts, car les modifier changerait le comportement du programme.

Si le fichier ne peut pas être lu, la fonction retourne une chaîne vide plutôt que de déclencher une erreur fatale :

<?php
$result = php_strip_whitespace('does-not-exist.php');

var_dump($result === ''); // bool(true)

Quand l'utiliser

  • Livraison d'une version de production. La suppression des commentaires et des espaces blancs réduit la taille des fichiers source et diminue légèrement le temps d'analyse lors des chargements à froid (avec un cache d'opcode comme OPcache activé, ce gain est principalement absorbé après la première requête).
  • Obfuscation du code distribué. La suppression des commentaires et des docblocks rend le source livré moins auto-documenté — une forme d'obfuscation légère, pas sécurisée.
  • Inspection de la sortie tokenisée. C'est un moyen rapide de voir le source d'un fichier sans ses commentaires.

Considérations de performance

Utilisez php_strip_whitespace() uniquement sur les copies de production de vos fichiers, jamais sur votre source de travail. Pendant le développement, les commentaires et les espaces blancs rendent le code lisible, débogable et maintenable ; les supprimer en place gâcherait tout cela. L'approche standard consiste à conserver le source commenté sous contrôle de version et à générer des copies nettoyées dans le cadre d'une étape de build/déploiement.

Notez qu'avec OPcache (intégré et activé par défaut dans les versions modernes de PHP), le bytecode compilé est mis en cache après la première requête, de sorte que les économies de temps d'analyse dues au nettoyage sont marginales. La réduction de taille est l'avantage le plus fiable.

php_strip_whitespace() vs. trim()

Ces fonctions n'ont aucun rapport malgré leurs noms similaires — une source courante de confusion :

FonctionOpère surSupprime
php_strip_whitespace()un fichier source PHPcommentaires + espaces blancs redondants du code source
trim()une valeur de chaîneles espaces blancs au début et à la fin d'une chaîne
ltrim() / rtrim()une valeur de chaîneles espaces blancs d'un seul côté

Si votre objectif est de nettoyer une chaîne (comme une entrée de formulaire), utilisez trim(), pas php_strip_whitespace().

Fonctions associées

  • file_get_contents() — lire le contenu brut d'un fichier sans rien supprimer.
  • readfile() — lire un fichier et l'écrire directement dans le tampon de sortie.
  • highlight_string() — l'objectif inverse : afficher le source PHP avec la coloration syntaxique.
  • Commentaires PHP — les syntaxes de commentaires que cette fonction supprime.

Conclusion

php_strip_whitespace() retourne une copie d'un fichier source PHP sans commentaires ni espaces blancs en le faisant passer par le tokeniseur de PHP, ce qui réduit la taille des fichiers en toute sécurité sans casser le code valide. Réservez-la aux builds de production, gardez à l'esprit qu'elle fonctionne sur des fichiers (pas des chaînes), et ne la confondez pas avec trim().

Pratique

Pratique
Quelle est la fonctionnalité de la fonction PHP 'trim()' telle qu'elle est utilisée dans les programmes ?
Quelle est la fonctionnalité de la fonction PHP 'trim()' telle qu'elle est utilisée dans les programmes ?
Was this page helpful?