mehdi7604
Messages postés118Date d'inscriptionjeudi 11 mai 2006StatutMembreDernière intervention 6 mars 2015
-
31 mars 2008 à 01:27
juju -
24 nov. 2016 à 16:45
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Ce code fonctionne très bien.
Super merci.
C'est exactement ce que je cherchais.
MJ92
Messages postés185Date d'inscriptionlundi 23 janvier 2006StatutMembreDernière intervention14 décembre 2014 30 août 2011 à 01:09
Salut nossoctoruss,
Réponse tardive mais je pense pouvoir t'aider si tu n'as pas résolu ton souci.
$files = glob("TON_CHEMIN/*.php*");/* $files pour "lister" les fichiers - Mise en place de *.* pour dire que ce dossier contient une extension (par exemple .jpg, .php, etc... */
$compteur = count($files);/* Variable $compteur pour compter (count) les fichiers lister ($files) dans le dossier */
echo "($compteur";
if ($compteur > 1) { echo " fichiers)"; }
else { echo " fichier)"; }
begueradj
Messages postés273Date d'inscriptiondimanche 4 octobre 2009StatutMembreDernière intervention24 juin 20149 8 juin 2011 à 15:21
un espace membre sans BDD: c'est comme parler d'une fille sans seins ni fesses
cs_nossoctoruss
Messages postés126Date d'inscriptionsamedi 28 novembre 2009StatutMembreDernière intervention 9 juin 2013 1 mai 2011 à 15:25
bonjour,je sais,je deterre,mais j'ai un petit souci au niveau de ton code MJ92 , je suis debutant,et en ce moment , je crée un espace membre sans bdd, je suis débutant, je n'ai jamais lus ni pris de cours php (mais le fait est que je suis a 75% de cet espace membre ^^,et qu'il fonctionne) bref mon probleme est que ton code:
<?php
/* On récupère les fichiers du répertoire dans un tableau $fichiers */
$dir = opendir(".");
$fichiers = array();
while ($nom = readdir($dir)) {
$fichiers[] = $nom;
echo $nom.'
';
}
closedir($dir);
?>
affiche les fichiers et les dossires, et moi je veux afficher que les fichiers .php et cacher l'extention .php,pour ce qui est de cacher l'extention, c'est fait:
<?
$dir = opendir("members/");
$fichiers = array();
while ($nom = readdir($dir)) {
$fichiers[] = $nom;
$ext = $nom;
$ext = str_replace('.php' ,'' ,$ext);
echo "".$ext."
";
}
closedir($dir);
?>
mais appres,pour trier,j'ai essayé:
<?
$dir = opendir("members/*.php*");
$fichiers = array();
while ($nom = readdir($dir)) {
$fichiers[] = $nom;
$ext = $nom;
$ext = str_replace('.php' ,'' ,$ext);
echo "".$ext."
";
}
closedir($dir);
?>
mais ca ne marche pas...quelqu'un peut-il m'aider svp?
babatt92
Messages postés33Date d'inscriptionlundi 13 septembre 2004StatutMembreDernière intervention10 juillet 2010 20 juil. 2008 à 23:50
Bonjour
Mon script si dessous marchait parfaitement sous easyphp mais pas du tout chez free. Apparement ils ont désastivé la fonction glob. Je n'arrive pas pas du tout avec opendir()
<? $files = glob("../../absolut/Images/500500/".$val['Reference']."*.jpg");
$compteur = count($files);
echo "Il y a $compteur photo";
If ($compteur > 1) { echo "s"; }
echo " en cliquant l'agrandissement. ?>
MJ92
Messages postés185Date d'inscriptionlundi 23 janvier 2006StatutMembreDernière intervention14 décembre 2014 31 mars 2008 à 20:05
Salut,
Elle est arrivé sur Codyx ce jour =)
Oui, bien sur, c'est plus simple, je n'ai pas appris à coder en fonction, mais j'apprends, on peut l'enlever =)
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 31 mars 2008 à 20:03
Et ce, sans compter l'exemple dans la manière de coder que l'on montre à un débutant...le tout séquentiel, c'est pas ce qu'il y a de mieux. Autant donner de bonnes habitudes afin qu'il galère moins par la suite avec ses propres codes.
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 31 mars 2008 à 20:01
Hello,
j'irai jeter un oeil sur codyx. Parce que je suis tout à fait d'accord avec Neige : ça n'est pas un code source, c'est bien un snippet.
De plus, il y a un truc que j'ai du mal à comprendre décidément : pourquoi les codes dédiés aux débutants sont-ils toujours les moins pratiques à utiliser ? Quand on est débutant, à priori, c'est qu'on aura plus de mal à modifier un code pour l'intégrer à SON site qu'un non débutant. Et quoi de plus simple à utiliser qu'une fonction ? J'ai besoin de savoir combien de fichiers contient un répertoire, j'appelle la fonction compterFichiers() en lui passant le répertoire concerné, et je sais qu'elle me retourne un entier. Après, si je veux faire un echo ou autre, c'est facile.
Imaginez si les créateurs de PHP avaient fait toutes les fonctions de cette manière :
- compter le nombre de caractères dans une chaîne.
Reproduisez et adaptez ce code :
<?php
$i = 0;
$sChaine = 'toto';
while(isset($sChaine[$i])) {
$i++;
}
echo 'Il y a '.$i.' caractère dans la chaîne '. $sChaine;
?>
Franchement, pour un débutant, c'est pas plus simple et adaptable de faire par exemple:
<?php
echo 'Le mot toto contient '.strlen('toto').' caractères';
?>
?
MJ92
Messages postés185Date d'inscriptionlundi 23 janvier 2006StatutMembreDernière intervention14 décembre 2014 31 mars 2008 à 03:04
Hum intéressant (mon message n'a pas été posté donc s'il est en double, désolé)...
Je ne connais pas tout encore, j'apprends via des tutos, des sources.
Pour ce code, je me suis lancé sur cela, mais bon, sans réel succès, puis ce code que je viens de faire, m'a permis de savoir le nombre de fichier qu'il y a dans mon panneau d'administration par admins...
Merci en tout cas pour l'info =)
MJ92
Messages postés185Date d'inscriptionlundi 23 janvier 2006StatutMembreDernière intervention14 décembre 2014 31 mars 2008 à 03:01
Hum ok, intéressant, j'apprends PHP de façon, comment dire ça, vite, pour reprise d'études, donc je n'ai pas tout encore. Disons que je visionne pas mal de sources, j'apprends de là, de tutos, mais je n'ai pas toutes les bases, et ce code là m'a intéressé quand je l'ai fait pour un panneau d'administration...
En tout cas, merci pour l'info
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 31 mars 2008 à 02:55
Content de voir que tu ne prends pas mal mes remarques : tant mieux, parce que je les fais sans aucune animosité.
Le code que j'ai mis au dessus est effectivement pour débutant. Pas un débutant qui découvre PHP depuis 1h, certes, mais quand même. Cependant, il fait appel à des notions de non-débutant (test de l'existence du répertoire, gestion de l'erreur).
Il s'agit donc d'une fonction qui retourne un nombre en cas de réussite (et c'est là que je me rends compte qu'elle ne renvoit rien en cas d'échec, ce qui est une erreur de ma part).
Elle teste tout d'abord l'existence du répertoire en tant que répertoire (d'où l'utilisation de is_dir() au lieu de file_exists() : puisque les répertoires sont aussi des fichiers, file_exists() retourne vrai si un fichier du nom existe, que ce soit un simple fichier ou un répertoire).
Elle compte ensuite le nombre de fichiers dans le répertoire, déduis . et ..
Si le répertoire n'existe pas, elle provoque une erreur avec un message (en anglais, qui peut être traduit par un gestionnaire d'erreurs plus tard), et avec un code erreur E_USER_NOTICE (cf la doc de PHP pour ça).
RIen de bien sorcier. Pour que ça soit plus propre, il faudrait rajouter
return false;
après le trigger_error().
Euh voilà.
MJ92
Messages postés185Date d'inscriptionlundi 23 janvier 2006StatutMembreDernière intervention14 décembre 2014 31 mars 2008 à 02:39
Pardon, que j'avais fait un lien sur mon forum pour codyx.
PS : Désolé pour les fautes, en me relisant, j'ai vu le torchon.
Néanmoins, merci pour la franchise =)
MJ92
Messages postés185Date d'inscriptionlundi 23 janvier 2006StatutMembreDernière intervention14 décembre 2014 31 mars 2008 à 02:36
C'est sur, on va pas se battre pour ça.
En revanche, je ne sais pas si ton code ci-dessus est pour débutant, perso, je le comprends qu'à moitié, mais je ne suis pas un expert non plus, loin de là, je tiens à le précisé.
Ayant vu ce type de code qui ne fonctionnait pas, je me suis dit autant le faire ici, j'ai combiné plusieurs codes, en vain.
J'ai posté ce code ici, en oubliant que codyx existait (pas cool, je sais), habitude de poster sur mon forum (pour cela que je dis que des snippets et codes j'en ai), j'ai vu que j'avais fait un lien sur codyx, et j'ai donc ajouté ce code dans les snippets.
S'il n'a vraiment pas sa place ici (chose qui est plus que probable), je n'ai rien contre qu'il soit supprimé d'ici pour le laisser sur codyx. Mais ca venait d'une bonne intention et par simple oubli de ma part pour codyx (posté dessus qu'après...).
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 31 mars 2008 à 02:27
Alors je ne crache mon venin sur personne. Je ne sais même pas si j'en ai (réflexion faite, si, mais je le garde pour les grande occasions).
C'est bien de partager. C'est très bien. Je t'en félicite, c'est une bonne initiative.
Simplement, c'est pas parce que je ne suis pas admin que j'ai pas mon mot à dire quant à l'endroit où poster un snippet. Je te fais simplement remarquer qu'à mon sens ce snippet a sa place dans les snippets, pas dans les sources. Rien de plus. Je laisse les admins faire leur boulot, moi, en tant qu'habitué, je te dis simplement ce que je pense. Le fait que je sois un habitué ne me donne pas de pouvoir, pas de supériorité, je ne te juge pas, je ne te prends pas de haut.
Et je ne dis pas que ton snippet n'aide pas, je ne remets pas ça en question, donc pas la peine de te "défendre" en disant que c'est pour aider.
D'ailleurs, j'ai pas dit que ta source était inutile. Première chose que j'ai faite quand je l'ai vue, c'est chercher si une fonction php fait ça (parce que crois-moi, des snippets ou des sources qui font en 15 lignes ce qu'une fonction fait en natif, ça existe, et on en voit...). Pas de fonction qui existe, très bien. J'ai alors cherché comment faire plus court. On peut le faire en une ligne, je te l'ai proposé. Voilà pour la "critique" du code. Tu prends, tu laisses, peu importe. C'est pas bien important, parce que côté performances ma ligne ne fait sûrement pas beaucoup mieux que les tiennes. C'est juste plus court...
Donc oui, c'est utile, ça peut aider : ça n'a juste pas sa place dans les sources... Je me permets de te le dire, parce que si cette source disparait, tu sauras pourquoi (surtout si le snippet est publié).
Pour terminer ma critique du code : l'idéal est non pas de faire un bout de code qui formatte un affichage en HTML, mais qui se contente de retourner une valeur (ici, le nombre de fichiers). L'idée est que c'est à chacun de choisir comment il présente ses données. Oui, chacun peut modifier les 3 lignes qu'il y a, c'est pas sorcier. C'est juste pour pinailler, parce que c'est très important à mes yeux, et ça joue sur les habitudes de développement : séparer le traitement (ici le PHP) de l'affichage (ici, du HTML).
Tu en ferais une fonction comme ça :
function num_files($dir) {
if (is_dir($dir)) {
return (count(scandir($dir) -2);
}
else {
trigger_error('Directory does not exist', E_USER_NOTICE);
}
}
ce serait encore plus propre...
Et puis des snippets, si t'en as plein, n'hésite pas à les poster... Ca prend parfois un peu de temps à la validation, mais c'est vraiment le genre de contribution qui ne peut être que bénéfique.
MJ92
Messages postés185Date d'inscriptionlundi 23 janvier 2006StatutMembreDernière intervention14 décembre 2014 31 mars 2008 à 02:00
Lol neigedhiver...
Ne crache pas ton venin sur moi, il y en a plein d'autres qui ont fait cette chose et je ne t'ai pas vu faire ça.
Soit, on parle de code, c'est pour aider, donc aider ne veut pas dire "je te lynche sur autre chose".
Les admins ont le pouvoirs de faire ce qu'ils veulent dessus, donc on reste sur la partie source (ou code si tu préfères), pas sur la partie "je ne suis pas d'accord avec toi pour l'emplacement". (Et je ne suis pas pressé, car j'aurai pu en poster des sources et/ou snippets, mais cela est utile pour ceux qui cherche, comme moi, et qui n'avaient pas trouvé =)).
Darkangel75, ben j'espère que ça t'a aidé ;) et merci pour le com's =)
cs_DarkAngel75
Messages postés6Date d'inscriptionjeudi 1 mars 2007StatutMembreDernière intervention31 mars 2008 31 mars 2008 à 01:54
oui moi en tout cas ca me sert.
c'est expliqué et les autres sources nous balance ca comme si on pouvait tout comprendre sans commentaire.
enfin voila tres utile ta source, meme si c'est un snippet :-)
encore bravo :-p
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 31 mars 2008 à 01:52
Oui ben si c'est en attente de validation sur codyx, c'est pas la peine de le poster ici...
Pour deux raisons :
- ça va faire doublon
- c'est pas sa place.
Dans la rubrique sources, on ne mets généralement pas des codes de 5 lignes qui peuvent tenir en une seule. On met plutôt des classes, des utilitaires complets.
Le but de codyx est justement d'accueillir les "mini-sources"
Faut juste pas être pressé à la seconde... Y'a rien d'urgent à partager une fonction...
MJ92
Messages postés185Date d'inscriptionlundi 23 janvier 2006StatutMembreDernière intervention14 décembre 2014 31 mars 2008 à 01:49
neigedhiver justement, c'est aussi en attente de validation sur Codyx.
Comme je l'ai dit, c'est quelque chose de basique (d'où certain développeur).
Je dépose une aide, après, chacun l'arrange à sa sauce...
C'est basique quoi...
MJ92
Messages postés185Date d'inscriptionlundi 23 janvier 2006StatutMembreDernière intervention14 décembre 2014 31 mars 2008 à 01:45
Ou sinon, tu as plus simple, avec des print au lieu de tableau :
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 31 mars 2008 à 01:43
Ah j'viens de voir les commentaires précédents...
Pour récupérer les fichiers dans un tableau, il suffit de lire la doc de PHP, la fonction glob() sert à ça...
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 31 mars 2008 à 01:42
Salut,
Sans vouloir faire le rabat-joie, ça aurait plus sa place dans les snippets de codyx qu'ici...
Sans vouloir te vexer non plus, tous les fichiers n'ont pas d'extension. Certains répertoires peuvent aussi avoir un . dans leur nom.
Exemple :
/home/myself/myscript.php/README
Sur les OS de type Unix/Linux, les répertoires sont des fichiers. Ils sont même éditables avec un éditeur de fichier, c'est dire (c'était juste pour l'anecdote).
Allez, en une ligne :
<?php echo 'Il y a ' . ($nb = count(scandir('/dossier/a/traiter')) - 2) . ' fichier' . (($nb>0) ? 's' : '') . ' dans le dossier'; ?>
Vraiment, c'est un snippet, pas une source...
MJ92
Messages postés185Date d'inscriptionlundi 23 janvier 2006StatutMembreDernière intervention14 décembre 2014 31 mars 2008 à 01:41
Pour cela, il y a un code pour récupérer en array, c'est un code totalement différent...
Essayes ceci:
<?php
/* On récupère les fichiers du répertoire dans un tableau $fichiers */
$dir = opendir(".");
$fichiers = array();
while ($nom = readdir($dir)) {
$fichiers[] = $nom;
echo $nom.'
';
}
closedir($dir);
?>
Pas essayé, mais logiquement, ça devrait fonctionner...
mehdi7604
Messages postés118Date d'inscriptionjeudi 11 mai 2006StatutMembreDernière intervention 6 mars 2015 31 mars 2008 à 01:27
Bonjour ,
C'est vraiment utile pour mon site , mais es ce que vous pouvez récupérer les noms de fichiers dans un tableau par exemple ?
( dans un dossier où on ne connais pas les fichiers )
24 nov. 2016 à 16:45
5 mai 2016 à 17:56
30 avril 2015 à 17:57
Super merci.
C'est exactement ce que je cherchais.
30 août 2011 à 01:09
Réponse tardive mais je pense pouvoir t'aider si tu n'as pas résolu ton souci.
$files = glob("TON_CHEMIN/*.php*");/* $files pour "lister" les fichiers - Mise en place de *.* pour dire que ce dossier contient une extension (par exemple .jpg, .php, etc... */
$compteur = count($files);/* Variable $compteur pour compter (count) les fichiers lister ($files) dans le dossier */
echo "($compteur";
if ($compteur > 1) { echo " fichiers)"; }
else { echo " fichier)"; }
8 juin 2011 à 15:21
1 mai 2011 à 15:25
<?php
/* On récupère les fichiers du répertoire dans un tableau $fichiers */
$dir = opendir(".");
$fichiers = array();
while ($nom = readdir($dir)) {
$fichiers[] = $nom;
echo $nom.'
';
}
closedir($dir);
?>
affiche les fichiers et les dossires, et moi je veux afficher que les fichiers .php et cacher l'extention .php,pour ce qui est de cacher l'extention, c'est fait:
<?
$dir = opendir("members/");
$fichiers = array();
while ($nom = readdir($dir)) {
$fichiers[] = $nom;
$ext = $nom;
$ext = str_replace('.php' ,'' ,$ext);
echo "".$ext."
";
}
closedir($dir);
?>
mais appres,pour trier,j'ai essayé:
<?
$dir = opendir("members/*.php*");
$fichiers = array();
while ($nom = readdir($dir)) {
$fichiers[] = $nom;
$ext = $nom;
$ext = str_replace('.php' ,'' ,$ext);
echo "".$ext."
";
}
closedir($dir);
?>
mais ca ne marche pas...quelqu'un peut-il m'aider svp?
20 juil. 2008 à 23:50
Mon script si dessous marchait parfaitement sous easyphp mais pas du tout chez free. Apparement ils ont désastivé la fonction glob. Je n'arrive pas pas du tout avec opendir()
<? $files = glob("../../absolut/Images/500500/".$val['Reference']."*.jpg");
$compteur = count($files);
echo "Il y a $compteur photo";
If ($compteur > 1) { echo "s"; }
echo " en cliquant l'agrandissement. ?>
31 mars 2008 à 20:05
Elle est arrivé sur Codyx ce jour =)
Oui, bien sur, c'est plus simple, je n'ai pas appris à coder en fonction, mais j'apprends, on peut l'enlever =)
31 mars 2008 à 20:03
31 mars 2008 à 20:01
j'irai jeter un oeil sur codyx. Parce que je suis tout à fait d'accord avec Neige : ça n'est pas un code source, c'est bien un snippet.
De plus, il y a un truc que j'ai du mal à comprendre décidément : pourquoi les codes dédiés aux débutants sont-ils toujours les moins pratiques à utiliser ? Quand on est débutant, à priori, c'est qu'on aura plus de mal à modifier un code pour l'intégrer à SON site qu'un non débutant. Et quoi de plus simple à utiliser qu'une fonction ? J'ai besoin de savoir combien de fichiers contient un répertoire, j'appelle la fonction compterFichiers() en lui passant le répertoire concerné, et je sais qu'elle me retourne un entier. Après, si je veux faire un echo ou autre, c'est facile.
Imaginez si les créateurs de PHP avaient fait toutes les fonctions de cette manière :
- compter le nombre de caractères dans une chaîne.
Reproduisez et adaptez ce code :
<?php
$i = 0;
$sChaine = 'toto';
while(isset($sChaine[$i])) {
$i++;
}
echo 'Il y a '.$i.' caractère dans la chaîne '. $sChaine;
?>
Franchement, pour un débutant, c'est pas plus simple et adaptable de faire par exemple:
<?php
echo 'Le mot toto contient '.strlen('toto').' caractères';
?>
?
31 mars 2008 à 03:04
Je ne connais pas tout encore, j'apprends via des tutos, des sources.
Pour ce code, je me suis lancé sur cela, mais bon, sans réel succès, puis ce code que je viens de faire, m'a permis de savoir le nombre de fichier qu'il y a dans mon panneau d'administration par admins...
Merci en tout cas pour l'info =)
31 mars 2008 à 03:01
En tout cas, merci pour l'info
31 mars 2008 à 02:55
Le code que j'ai mis au dessus est effectivement pour débutant. Pas un débutant qui découvre PHP depuis 1h, certes, mais quand même. Cependant, il fait appel à des notions de non-débutant (test de l'existence du répertoire, gestion de l'erreur).
Il s'agit donc d'une fonction qui retourne un nombre en cas de réussite (et c'est là que je me rends compte qu'elle ne renvoit rien en cas d'échec, ce qui est une erreur de ma part).
Elle teste tout d'abord l'existence du répertoire en tant que répertoire (d'où l'utilisation de is_dir() au lieu de file_exists() : puisque les répertoires sont aussi des fichiers, file_exists() retourne vrai si un fichier du nom existe, que ce soit un simple fichier ou un répertoire).
Elle compte ensuite le nombre de fichiers dans le répertoire, déduis . et ..
Si le répertoire n'existe pas, elle provoque une erreur avec un message (en anglais, qui peut être traduit par un gestionnaire d'erreurs plus tard), et avec un code erreur E_USER_NOTICE (cf la doc de PHP pour ça).
RIen de bien sorcier. Pour que ça soit plus propre, il faudrait rajouter
return false;
après le trigger_error().
Euh voilà.
31 mars 2008 à 02:39
PS : Désolé pour les fautes, en me relisant, j'ai vu le torchon.
Néanmoins, merci pour la franchise =)
31 mars 2008 à 02:36
En revanche, je ne sais pas si ton code ci-dessus est pour débutant, perso, je le comprends qu'à moitié, mais je ne suis pas un expert non plus, loin de là, je tiens à le précisé.
Ayant vu ce type de code qui ne fonctionnait pas, je me suis dit autant le faire ici, j'ai combiné plusieurs codes, en vain.
J'ai posté ce code ici, en oubliant que codyx existait (pas cool, je sais), habitude de poster sur mon forum (pour cela que je dis que des snippets et codes j'en ai), j'ai vu que j'avais fait un lien sur codyx, et j'ai donc ajouté ce code dans les snippets.
S'il n'a vraiment pas sa place ici (chose qui est plus que probable), je n'ai rien contre qu'il soit supprimé d'ici pour le laisser sur codyx. Mais ca venait d'une bonne intention et par simple oubli de ma part pour codyx (posté dessus qu'après...).
31 mars 2008 à 02:27
C'est bien de partager. C'est très bien. Je t'en félicite, c'est une bonne initiative.
Simplement, c'est pas parce que je ne suis pas admin que j'ai pas mon mot à dire quant à l'endroit où poster un snippet. Je te fais simplement remarquer qu'à mon sens ce snippet a sa place dans les snippets, pas dans les sources. Rien de plus. Je laisse les admins faire leur boulot, moi, en tant qu'habitué, je te dis simplement ce que je pense. Le fait que je sois un habitué ne me donne pas de pouvoir, pas de supériorité, je ne te juge pas, je ne te prends pas de haut.
Et je ne dis pas que ton snippet n'aide pas, je ne remets pas ça en question, donc pas la peine de te "défendre" en disant que c'est pour aider.
D'ailleurs, j'ai pas dit que ta source était inutile. Première chose que j'ai faite quand je l'ai vue, c'est chercher si une fonction php fait ça (parce que crois-moi, des snippets ou des sources qui font en 15 lignes ce qu'une fonction fait en natif, ça existe, et on en voit...). Pas de fonction qui existe, très bien. J'ai alors cherché comment faire plus court. On peut le faire en une ligne, je te l'ai proposé. Voilà pour la "critique" du code. Tu prends, tu laisses, peu importe. C'est pas bien important, parce que côté performances ma ligne ne fait sûrement pas beaucoup mieux que les tiennes. C'est juste plus court...
Donc oui, c'est utile, ça peut aider : ça n'a juste pas sa place dans les sources... Je me permets de te le dire, parce que si cette source disparait, tu sauras pourquoi (surtout si le snippet est publié).
Pour terminer ma critique du code : l'idéal est non pas de faire un bout de code qui formatte un affichage en HTML, mais qui se contente de retourner une valeur (ici, le nombre de fichiers). L'idée est que c'est à chacun de choisir comment il présente ses données. Oui, chacun peut modifier les 3 lignes qu'il y a, c'est pas sorcier. C'est juste pour pinailler, parce que c'est très important à mes yeux, et ça joue sur les habitudes de développement : séparer le traitement (ici le PHP) de l'affichage (ici, du HTML).
Tu en ferais une fonction comme ça :
function num_files($dir) {
if (is_dir($dir)) {
return (count(scandir($dir) -2);
}
else {
trigger_error('Directory does not exist', E_USER_NOTICE);
}
}
ce serait encore plus propre...
Et puis des snippets, si t'en as plein, n'hésite pas à les poster... Ca prend parfois un peu de temps à la validation, mais c'est vraiment le genre de contribution qui ne peut être que bénéfique.
31 mars 2008 à 02:00
Ne crache pas ton venin sur moi, il y en a plein d'autres qui ont fait cette chose et je ne t'ai pas vu faire ça.
Soit, on parle de code, c'est pour aider, donc aider ne veut pas dire "je te lynche sur autre chose".
Les admins ont le pouvoirs de faire ce qu'ils veulent dessus, donc on reste sur la partie source (ou code si tu préfères), pas sur la partie "je ne suis pas d'accord avec toi pour l'emplacement". (Et je ne suis pas pressé, car j'aurai pu en poster des sources et/ou snippets, mais cela est utile pour ceux qui cherche, comme moi, et qui n'avaient pas trouvé =)).
Darkangel75, ben j'espère que ça t'a aidé ;) et merci pour le com's =)
31 mars 2008 à 01:54
c'est expliqué et les autres sources nous balance ca comme si on pouvait tout comprendre sans commentaire.
enfin voila tres utile ta source, meme si c'est un snippet :-)
encore bravo :-p
31 mars 2008 à 01:52
Pour deux raisons :
- ça va faire doublon
- c'est pas sa place.
Dans la rubrique sources, on ne mets généralement pas des codes de 5 lignes qui peuvent tenir en une seule. On met plutôt des classes, des utilitaires complets.
Le but de codyx est justement d'accueillir les "mini-sources"
Faut juste pas être pressé à la seconde... Y'a rien d'urgent à partager une fonction...
31 mars 2008 à 01:49
Comme je l'ai dit, c'est quelque chose de basique (d'où certain développeur).
Je dépose une aide, après, chacun l'arrange à sa sauce...
C'est basique quoi...
31 mars 2008 à 01:45
<? php
$fichiers = glob('./*');
print_r($fichiers);
?>
31 mars 2008 à 01:43
Pour récupérer les fichiers dans un tableau, il suffit de lire la doc de PHP, la fonction glob() sert à ça...
31 mars 2008 à 01:42
Sans vouloir faire le rabat-joie, ça aurait plus sa place dans les snippets de codyx qu'ici...
Sans vouloir te vexer non plus, tous les fichiers n'ont pas d'extension. Certains répertoires peuvent aussi avoir un . dans leur nom.
Exemple :
/home/myself/myscript.php/README
Sur les OS de type Unix/Linux, les répertoires sont des fichiers. Ils sont même éditables avec un éditeur de fichier, c'est dire (c'était juste pour l'anecdote).
Allez, en une ligne :
<?php echo 'Il y a ' . ($nb = count(scandir('/dossier/a/traiter')) - 2) . ' fichier' . (($nb>0) ? 's' : '') . ' dans le dossier'; ?>
Vraiment, c'est un snippet, pas une source...
31 mars 2008 à 01:41
Essayes ceci:
<?php
/* On récupère les fichiers du répertoire dans un tableau $fichiers */
$dir = opendir(".");
$fichiers = array();
while ($nom = readdir($dir)) {
$fichiers[] = $nom;
echo $nom.'
';
}
closedir($dir);
?>
Pas essayé, mais logiquement, ça devrait fonctionner...
31 mars 2008 à 01:27
C'est vraiment utile pour mon site , mais es ce que vous pouvez récupérer les noms de fichiers dans un tableau par exemple ?
( dans un dossier où on ne connais pas les fichiers )