Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/07/2011, 10h49   #1
Nouveau Membre du Club
 
Inscription : avril 2005
Messages : 180
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 180
Points : 29
Points : 29
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 :
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
miltonis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 10h55   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
comme ca :
Code :
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é
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 12h53   #3
Nouveau Membre du Club
 
Inscription : avril 2005
Messages : 180
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 180
Points : 29
Points : 29
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 :
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
miltonis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 13h28   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
t'es rester en php 4 ? d'ailleurs le glob devrai être la
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 13h37   #5
Nouveau Membre du Club
 
Inscription : avril 2005
Messages : 180
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 180
Points : 29
Points : 29
Je ne sais pas, c'est sur un serveur Free
miltonis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 13h43   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 14h21   #7
Nouveau Membre du Club
 
Inscription : avril 2005
Messages : 180
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 180
Points : 29
Points : 29
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
miltonis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 14h24   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 15h23   #9
Nouveau Membre du Club
 
Inscription : avril 2005
Messages : 180
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 180
Points : 29
Points : 29
Je l'ai fait, je t'envoie les liens par messagerie privée si tu veux bien.
merci
miltonis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 15h25   #10
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
montre ton code
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 15h49   #11
Nouveau Membre du Club
 
Inscription : avril 2005
Messages : 180
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 180
Points : 29
Points : 29
Code :
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++;				
  }
miltonis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 15h51   #12
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
test avec ton glob comme avant
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 15h56   #13
Nouveau Membre du Club
 
Inscription : avril 2005
Messages : 180
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 180
Points : 29
Points : 29
ça ne marche pas :
"Warning: Invalid argument supplied for foreach()"
miltonis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 15h58   #14
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
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 :
1
2
ini_set('display_errors', true);
error_reporting(-1);
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 16h06   #15
Nouveau Membre du Club
 
Inscription : avril 2005
Messages : 180
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 180
Points : 29
Points : 29
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 :
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 ?
miltonis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 16h09   #16
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 16h14   #17
Nouveau Membre du Club
 
Inscription : avril 2005
Messages : 180
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 180
Points : 29
Points : 29
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)
miltonis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 16h16   #18
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 16h17   #19
Nouveau Membre du Club
 
Inscription : avril 2005
Messages : 180
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 180
Points : 29
Points : 29
Pour l'iterator :
object(DirectoryIterator)#1

est-ce que ça fonctionne ?
miltonis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 16h19   #20
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h10.


 
 
 
 
Partenaires

Hébergement Web