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. Sur cette ligne:
    if(is_dir($cheminSrc)) commentaires($cheminSrc, $cheminDest);

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

    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. 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. 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. 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.