Probléme code php

Résolu
Bonjour,

J'ai essayer d'utiliser un scripte qui nettoye les commentaires de fichier php mais il me revoie l'erreur suivante et je ne voie pas se qui cloche dans le scripte donc j'aurais besoin d'aide.

Voici le scripte:

<?php
function nettoyerDossier($source, $destination, $extension='php')
{
   // si la source est un fichier, on le nettoie
   if(!is_dir($source)) return nettoyer($source, $destination);
   
   // si la source est un dossier, on traite chaque fichier comportant l'extension souhaitée,
   // ainsi que tous les sous-dossiers
   $fichiers=scandir($source);
   foreach($fichiers as $script)
   {
      if($script!='.' && $script!='..')
      {
         $cheminSrc=$source.'/'.$script;
         $cheminDest=$destination.'/'.$script;
         
         // si le fichier courant est un dossier, on applique à nouveau la fonction sur ce dossier
         if(is_dir($cheminSrc)) commentaires($cheminSrc, $cheminDest);
         
         // sinon, on regarde l'extension du fichier, et si c'est la bonne, on le traite
         elseif(pathinfo($script, PATHINFO_EXTENSION)==$extension) nettoyer($cheminSrc, $cheminDest);
      }
   }
   
   // on retourne vrai (on peut aussi imaginer renvoyer le nombre de scripts traités avec succès)
   return true;
}

// exemple d'usage de la fonction :
nettoyerDossier('/mnt/142/sdb/d/a/www.worldnet/data/csm', '/mnt/142/sdb/d/a/www.worldnet/data/da');
?>


Et le code d'erreur fournie:

Fatal error: Call to undefined function commentaires() in /mnt/142/sdb/d/a/www.worldnet/data/net.php5 on line 27

Merci
Configuration: Win 7 et linux

7 réponses

  1. J'en ai fini j'ai trouvé un scripte plus simple et fonctionnel car après modification et re-modification j'ai toujours des erreur qui vienne de je ne sais ou voici le code que j'utilise actuellement .
    <?php
    
    // Le dossier final du projet
    $finalDest = '../da';
    
    /**
    * Supprime les commentaires et les espaces des fichiers php
    */
    function clean_php_from_dir($dir,$dest) {
    	global $finalDest;
    
    	// On crée le dossier
    	if(!file_exists($dest)) mkdir($dest, 0777, true);
    
    	// On ne parcourt que s'il s'agit d'un dossier
    	if(is_dir($dir)) {
    		// On ouvre le dossier
    		if($dh = opendir($dir)){
    			// On parcourt les éléments du dossier
    			while (($file = readdir($dh)) !== false) {
    				// On ne traite pas les dossiers '.' et '..', sinon boucle infini
    				if($file !== '.' && $file !== '..') {
    					// Si l'élément est un dossier, on va aussi le traiter
    					if(is_dir($dir . '/' . $file)) {
    						clean_php_from_dir($dir . '/' . $file, $dest . '/' . $file);
    					}
    					// Si c'est un fichier PHP, on le nettoie (sauf ce fichier)
    					elseif(ereg('.php$',$file) && $file !== 'cleaner.php') {
    						// Nettoyage du code
    					   $codeClean = php_strip_whitespace($dir . '/' . $file);
    
    					   // On l'écrit dans le fichier final
    					   file_put_contents($dest . '/' . $file, $codeClean);
    					}
    				}
    	        }
    		}
    	}
    }
    
    // On commence le nettoyage des scripts PHP depuis le dossier courant
    clean_php_from_dir('.',$finalDest);
    
    echo 'Done';
    
    ?>


    Je vus re-merci de vous êtes penché sur le problème.
    1. et effectivement tu fais appel a la fonction nettoyer que l'on ne voit nulle part

      il doit bien y avoir une fonction nettoyer qui supprime les commentaires
      1. Quand j'effectue le remplacement
        sa me donne cela

        Fatal error: Call to undefined function nettoyer() in C:\Users\Lilo\Desktop\ZMWS\_web.zmwsc\net.php on line 30

        Donc sa avance mais la fonction n'est pas définie je ne vois pas comment cette ligne ne peu pas être définie les condition me font tourné la tête ...

        1. // si le fichier courant est un dossier, on applique à nouveau la fonction sur ce dossier
          if(is_dir($cheminSrc)) commentaires($cheminSrc, $cheminDest);


          remplaces commentaires par nettoyerDossier
          1. Sur cette ligne:
            if(is_dir($cheminSrc)) commentaires($cheminSrc, $cheminDest);

            Tu utilises une fonction commentaires() qui n'est pas défini.