Probléme code php

Résolu
fm825 Messages postés 522 Date d'inscription   Statut Membre Dernière intervention   -  
fm825 Messages postés 522 Date d'inscription   Statut Membre Dernière intervention   -
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. arthezius Messages postés 3756 Statut Membre 475
     
    Sur cette ligne:
    if(is_dir($cheminSrc)) commentaires($cheminSrc, $cheminDest);

    Tu utilises une fonction commentaires() qui n'est pas défini.
    0
  2. Alain_42 Messages postés 5413 Statut Membre 904
     

    // 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
    0
  3. fm825 Messages postés 522 Date d'inscription   Statut Membre Dernière intervention   36
     
    ok je test
    0
  4. fm825 Messages postés 522 Date d'inscription   Statut Membre Dernière intervention   36
     
    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 ...
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Alain_42 Messages postés 5413 Statut Membre 904
     
    remplaces commentaires par nettoyerDossier
    0
  7. Alain_42 Messages postés 5413 Statut Membre 904
     
    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
    0
  8. fm825 Messages postés 522 Date d'inscription   Statut Membre Dernière intervention   36
     
    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.
    0