IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Remplacer la fonction Glob chez Free ?


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 200
    Points : 66
    Points
    66
    Par défaut Remplacer la fonction Glob chez Free ?
    Bonjour,
    J'utilise glob() pour détecter l'extension des fichiers d'un répertoire. Mais je m'aperçois que chez free cette fonction n'est pas activée ?
    Comment faire pour la remplacer ?

    Voici ce que j'utilise normalement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    $data = glob('*.*');
    $compt = 0;
     
    // Pour chaque élément du tableau $data, on exécute ce qui suit
    foreach ($data as $filename) {
    	// Récupère l'extension du fichier
    	$extension = substr($data[$compt],strlen($data[$compt])-3,3);
     
    	// Détermine si le fichier commence par "index"
    	$fichier = substr($data[$compt],0,5);
     
    	switch ($extension) {
    	case "pdf" : $imgExt = "pdf"; break;
    	case "jpg" : $imgExt = "img"; break;
    	case "zip" : $imgExt = "zip"; break;
    	case "rar" : $imgExt = "zip"; break;
    	case "htm" : $imgExt = "html"; break;
    	case "tml" : $imgExt = "html"; break;
    	case "gif" : $imgExt = "img"; break;
    	case "doc" : $imgExt = "doc"; break;
    	case "docx" : $imgExt = "doc"; break;
    	case "xls" : $imgExt = "xls"; break;
    	case "mdb" : $imgExt = "mdb"; break;
    	case "psd" : $imgExt = "psd"; break;
    	case "ai" : $imgExt = "ai"; break;
    	case "fla" : $imgExt = "fla"; break;
    	case "swf" : $imgExt = "swf"; break;
    	case "mp3" : $imgExt = "mp3"; break;
    	default : $imgExt = "div";
    	}
     
    	if ($fichier == "index") {}
    	else {
    		// Construit la ligne du tableau
    		echo "code html";
    		$extension = "";
    	}
    	$compt++;				
    }
    merci d'avance

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $dir = new DirectoryIterator('./');
     
    foreach($dir as $file)
    {
        $extension = pathinfo($file, PATHINFO_EXTENSION);
        //
    }
    ton switch peut être largement simplifié

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 200
    Points : 66
    Points
    66
    Par défaut
    Merci pour ta réponse Stealth, mais je n'arrive pas à le faire fonctionner, j'ai ceci comme message :
    Fatal error: Cannot instantiate non-existent class: directoryiterator in

    Le début du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $data = new DirectoryIterator('./');
     
    foreach($data as $filename)
    {
     
    		// Récupère l'extension du fichier
    		//echo substr($data[$compt],strlen($data[$compt])-3,3);
    		$extension = pathinfo($filename, PATHINFO_EXTENSION);
    A quoi est-ce dû ?
    merci

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    t'es rester en php 4 ? d'ailleurs le glob devrai être la

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 200
    Points : 66
    Points
    66
    Par défaut
    Je ne sais pas, c'est sur un serveur Free

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par miltonis Voir le message
    Je ne sais pas, c'est sur un serveur Free
    active php5
    met avec fichier .htaccess a la racine de ton si avec comme contenu : php 1

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 200
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    active php5
    met avec fichier .htaccess a la racine de ton si avec comme contenu : php 1
    Je dois mal faire quelque chose, ça ne marche pas, le même message d'erreur apparait.
    Le .htaccess est pourtant là avec php 1

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par miltonis Voir le message
    Je dois mal faire quelque chose, ça ne marche pas, le même message d'erreur apparait.
    Le .htaccess est pourtant là avec php 1
    fait un phpinfo

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 200
    Points : 66
    Points
    66
    Par défaut
    Je l'ai fait, je t'envoie les liens par messagerie privée si tu veux bien.
    merci

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    montre ton code

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 200
    Points : 66
    Points
    66
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
      <?php
    $dir = new DirectoryIterator('./');
     
    foreach($dir as $file)
    {
     
      $extension = pathinfo($file, PATHINFO_EXTENSION);
     
    		// Détermine si le fichier commence par "index"
    		$fichier = substr($data[$compt],0,5);
     
    		switch ($extension) {
    		case "pdf" : $imgExt = "pdf"; break;
    		case "jpg" : $imgExt = "img"; break;
    		case "zip" : $imgExt = "zip"; break;
    		case "rar" : $imgExt = "zip"; break;
    		case "htm" : $imgExt = "html"; break;
    		case "tml" : $imgExt = "html"; break;
    		case "gif" : $imgExt = "img"; break;
    		case "doc" : $imgExt = "doc"; break;
    		case "docx" : $imgExt = "doc"; break;
    		case "xls" : $imgExt = "xls"; break;
    		case "mdb" : $imgExt = "mdb"; break;
    		case "psd" : $imgExt = "psd"; break;
    		case "ai" : $imgExt = "ai"; break;
    		case "fla" : $imgExt = "fla"; break;
    		case "swf" : $imgExt = "swf"; break;
    		case "mp3" : $imgExt = "mp3"; break;
    		default : $imgExt = "div";
    		}
     
    		if ($fichier == "index") {}
    		else {
    			// Construit la ligne du tableau
    			echo "xxxxxxxxxxxxxxxxx";
    				    $extension = "";
    		}
        $compt++;				
      }

  12. #12
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    test avec ton glob comme avant

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 200
    Points : 66
    Points
    66
    Par défaut
    ça ne marche pas :
    "Warning: Invalid argument supplied for foreach()"

  14. #14
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par miltonis Voir le message
    ça ne marche pas :
    "Warning: Invalid argument supplied for foreach()"
    fait un et au début de ton code fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ini_set('display_errors', true);
    error_reporting(-1);

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 200
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    $dir ? ce ne serait pas $data plutôt ? j'utilise glob ou le bout de code que tu m'as donné ?

    Citation Envoyé par stealth35 Voir le message
    et au début de ton code fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ini_set('display_errors', true);
    error_reporting(-1);
    ok, ça ne donne rien de nouveau

    J'ai lu sur le net qu'il est possible de remplacer GLOB par OPENDIR sur les serveurs Free car ceux-ci ne reconnaissent pas GLOB...
    Sais-tu comment faire stp ?

  16. #16
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    dans ton code c'est $dir dans l'ancien $data, déjà pourquoi avoir changé, dans tout les cas fait un var_dump de résultat du glob ou de l'iterator, var_dump t'affiche forcement un résultat, dis nous ce résultat, si il n'est pas dans tas page web regarde bien la source html

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 200
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    dans ton code c'est $dir dans l'ancien $data, déjà pourquoi avoir changé, dans tout les cas fait un var_dump de résultat du glob ou de l'iterator, var_dump t'affiche forcement un résultat, dis nous ce résultat, si il n'est pas dans tas page web regarde bien la source html
    Je n'ai pas changé mon code du début, bon pas grave
    Voici le var_dump de $data
    bool(false)

  18. #18
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    y'a false avec le glob et avec l'iterator ?


    le $dir était dans mon exemple, c’est juste que t'as recopié sans adapter

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 200
    Points : 66
    Points
    66
    Par défaut
    Pour l'iterator :
    object(DirectoryIterator)#1

    est-ce que ça fonctionne ?

  20. #20
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par miltonis Voir le message
    Pour l'iterator :
    object(DirectoryIterator)#1

    est-ce que ça fonctionne ?
    c'est a toi de me le dire, c'est a toi de vérifier tes valeurs avec des var_dump

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/02/2008, 21h40
  2. Remplacement des fonctions D3DX
    Par pot dans le forum DirectX
    Réponses: 1
    Dernier message: 23/11/2005, 18h37
  3. Hebergement gratuit chez Free.fr ?
    Par freud dans le forum Free
    Réponses: 22
    Dernier message: 25/10/2005, 20h28
  4. Pb de session chez free
    Par kernel57 dans le forum Langage
    Réponses: 2
    Dernier message: 01/09/2005, 14h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo