Probléme code php

Résolu/Fermé
fm825 Messages postés 522 Date d'inscription samedi 3 mai 2008 Statut Membre Dernière intervention 13 septembre 2014 - 12 mars 2010 à 15:25
fm825 Messages postés 522 Date d'inscription samedi 3 mai 2008 Statut Membre Dernière intervention 13 septembre 2014 - 13 mars 2010 à 22:00
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
A voir également:

7 réponses

arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
12 mars 2010 à 17:39
Sur cette ligne:
if(is_dir($cheminSrc)) commentaires($cheminSrc, $cheminDest);

Tu utilises une fonction commentaires() qui n'est pas défini.
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
12 mars 2010 à 18:42

// 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
fm825 Messages postés 522 Date d'inscription samedi 3 mai 2008 Statut Membre Dernière intervention 13 septembre 2014 36
12 mars 2010 à 21:03
ok je test
0
fm825 Messages postés 522 Date d'inscription samedi 3 mai 2008 Statut Membre Dernière intervention 13 septembre 2014 36
12 mars 2010 à 21:13
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
13 mars 2010 à 15:55
remplaces commentaires par nettoyerDossier
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
13 mars 2010 à 15:58
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
fm825 Messages postés 522 Date d'inscription samedi 3 mai 2008 Statut Membre Dernière intervention 13 septembre 2014 36
13 mars 2010 à 22:00
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