christophe0511
Messages postés4Date d'inscriptiondimanche 11 septembre 2005StatutMembreDernière intervention 2 décembre 2010 2 déc. 2010 à 23:03
Avec plaisir !
solakin2
Messages postés5Date d'inscriptiondimanche 23 novembre 2008StatutMembreDernière intervention16 juillet 2010 2 déc. 2010 à 22:10
Juste pour dire "Merci" !
C'est exactement ce qu'il me fallait et moi aussi j'ai eu du mal à trouver un script qui fait ça.
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 2 janv. 2010 à 15:50
T'es vraiment archi nul Christophe0511, ta fonction est vraiment pourrie, tu aurais mieux fait de la garder plutôt que venir la vomir ici.
Je viens de filer le sujet à Patch, Nacre et Kalyx (les toutous à papa) et ils font mieux que toi :
;) Tu l'auras compris, c'est juste une note "d'humour" pour rebondir sur ces points :
- ça me fait toujours marrer que Neige s'en prenne plein la tronche avec ses commentaires;
(a noter que je n'ai aucune action chez lui et que je ne lui dois absolument rien ^^)
Je cite :
"se faire insulter"
"moi une merde !"
"aussi violente"
"traiter d'imbécile"
Je n'ai retrouvé nul part des propos qui pourraient justifier les tiens.
Comme cela a été très justement précisé par Inwebo son message n'est qu'"un peu rude", et ses contributions à CS sont parmi les plus importantes.
Tu aurais dû en tenir compte dans tes réponses, mais j'ai bien noté ton "...à mon tour présente mes excuses à ceux que j'ai pu heurter !"
Je ne doute pas que Neige t'en ai persuadé en 1 ou 2 MP.
Malheureusement, sur le fond, je ne peux être que d'accord avec, il y a toujours quelques nases pour massacrer les sources, en des termes au combien différents de ceux de Neige.
Moi même je ne poste jamais, mais je changerai peut être d'avis, en me faisant un plaisir de remettre à leurs places ces guignols.
En résumé :
Il faut savoir se mettre à la place des débutants, respecter leur travail et les encourager dans leur progression
Il faut savoir se mettre à la place des membres expérimentés qui voient passer des dizaine de sources de qualité contestable alors qu'ils ont répété des centaines de fois certaines "bonnes pratiques"
Il faut savoir casser, même méchamment, les sources ou les messages du forum (surtout) qui relèvent du foutage de gueule (et il y en a crois moi)
- pour en revenir à la source écrite très rapidement par mes potes canins (:o)) elle ne relève qu'à moitié de l'humour :
On cherche ici des fichiers ayant une certaine extension afin de les supprimer selon leur date de modification
Dans ce contexte pourquoi s'embêter à faire trop de tests ? (., .., pathinfo, ...)
Pourquoi tester is_object ?
Les tests de la validité du répertoire et du bon déroulement de la suppression me paraissent quant à eux nécessaires
(en cas de réclamation quant au code vite écrit => s'adresser aux crocs acérés de mes toutous) ^^
Cordialement,
Kohntark
christophe0511
Messages postés4Date d'inscriptiondimanche 11 septembre 2005StatutMembreDernière intervention 2 décembre 2010 30 déc. 2009 à 04:17
Merci Neigedhiver,
Comme quoi, les livres ont vraiment du bon ! -|^
Allez, je pense que ce bout code est maintenant valide pour toutes et tous, et s'il rend service à l'une ou l'autre j'en serais très heureux !
Je ne sais pas si je posterais encore, car ce n'est pas vraiment mon truc...(de poster)
Bien que finalement, je suis heureux d'avoir fait la connaissance d'un gars du plateau des millevaches, depuis l'Armorique !
Merci à vous !
et mes meilleurs vœux pour l'année qui s'annonce !
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 30 déc. 2009 à 03:54
Une explication sur quoi ? Moi je veux bien expliquer, mais je veux bien savoir quoi ! :)
J'ai tendance à dire que les deux méthodes se valent. Je ne sais pas si l'une est plus rapide que l'autre, il faudrait bencher, mais pour la différence que ça représente, je suis certain, sans avoir besoin de vérifier, que c'est complètement négligeable (bon pour traiter 3 millions de fichiers, ça peut commencer à prendre de l'importance, mais bon, de l'ordre du dixième de seconde, alors...)
Bref. J'ai tendance à utiliser pathinfo pour des fichiers avec chemin complet (puisque cette fonction est capable de séparer le répertoire, le nom du fichier et l'extension). Mais bon, c'est une habitude, pas une vérité absolue.
christophe0511
Messages postés4Date d'inscriptiondimanche 11 septembre 2005StatutMembreDernière intervention 2 décembre 2010 30 déc. 2009 à 03:44
Merci Inwebo pour ta remarque très pertinente et l'intérêt apporté à ma source. j'ai donc pris acte de tes deux remarques et modifié la source en conséquence !
Neigedhiver, J'espère que tu n'as rien contre : pathinfo($file, PATHINFO_EXTENSION) bon, ça fait plus de caractères que substr($file, -4), mais je pense que Apache peut supporter cela non ?
Plus sérieusement, si c'est PHPment correcte, c'est une autre méthode pour vérifier une extension de fichier tout simplement.
Sinon, et si tu as le temps peux-tu nous donner si possible une explication succincte pour faire progresser la communauté.
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 30 déc. 2009 à 00:59
[HORS SUJET]
La Goudale, pas de problème... Ici, on a la Félis, brassée à Felletin avec de l'eau de source (non pasteurisée, donc fermentation encore en bouteille) et la 1000 (parce que plateau de millevaches).
Quelques litres, l'autre, hé... Pourquoi si peu ?
SUJET
Ah oui, j'avais été tellement obnubilé par mon problème avec readdir() que j'avais pas fait gaffe à ça.
Le mieux pour vérifier qu'un fichier se termine bien pas png est encore de vérifier avec substr :
if (substr($file, -4) == '.png' && .....)
inwebo
Messages postés380Date d'inscriptionlundi 12 novembre 2007StatutMembreDernière intervention23 octobre 2014 29 déc. 2009 à 22:24
Je ne doute pas que ton code fonctionne !
Par contre :
- Tu n'utilises pas la bonne méthode pour tester l'extension d'un fichier. Imagine un nom de fichier avec des points à l'intérieur.
- Je rajouterai en paramètre le type de fichier, et la durée en seconde, comme cela, hop pas besoin de retoucher au code si un utilisateur veut se servir de ton script.
> Neighedhiver , quelques litres par personne suffiront de la Divine ou Goudal, mais avec modération hein.
cs_Benjamin37
Messages postés59Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention18 mars 2010 28 déc. 2009 à 21:05
Bonsoir !
Ils sont où les fichiers ?
Si c'est pour mettre un petit bout de code à quoi cela sert de poster cela pour régler ses comptes :(
Bonne soirée
christophe0511
Messages postés4Date d'inscriptiondimanche 11 septembre 2005StatutMembreDernière intervention 2 décembre 2010 28 déc. 2009 à 19:58
Merci pour tes encouragements Inwebo!
A te lire c'est un honneur de que se faire insulter par Neigedhiver, j'en prends bonne note !
Je veux bien recevoir, ce que tu souhaites dire sur ma contribution, car à vrai dire et pour être tout à fait honnête, mon code fonctionne parfaitement sur mon site et je n'ai rien compris à ce qu'écrit Neigedhiver... Peut-être que je suis dans un cas particulier ou que ce qu'il dit ne se produit pas sur mon site !
Je pense que phpcs.com est fait pour partager et progresser et non pas se faire traiter d'imbécile de la première neige fondue (pour faire un jeu de mot avec Maître Neigedhiver)
en tout cas c'était la première fois que je postais une contribution!
Maintenant pour les bières, j'en veux bien une !
Cordialement,
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 28 déc. 2009 à 19:58
Ouaip... J'ai été rude. On règle ça en privé par mp, voilà voilà...
Sinon la pêche, pas pour moi. Mais les bières, pas de soucis... Combien de litres je prévois ?
inwebo
Messages postés380Date d'inscriptionlundi 12 novembre 2007StatutMembreDernière intervention23 octobre 2014 28 déc. 2009 à 19:05
Salut,
Il ne faut pas le prendre comme cela, car Neigedhiver donne d'excellents conseils et si tu veux progresser essaye de ne pas prendre la mouche et replonge toi dans ton code. C'est vrai que c'était un peu "rude" comme message de sa part mais si tu fais un tour sur ce site tu verras qu'il a dû répéter ce qu'il vient de te dire quelques centaines de fois, il a pris le temps de te répondre ce qui est déjà un compliment, non ?
Moi par contre j'avais des choses à dire sur ta source à mon humble niveau bien sûr.
Allez Neigedhiver sort les bières et on va faire un partie de pêche, c'est vrai que c'est relaxant.
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 28 déc. 2009 à 13:03
Salut,
Ca devient lassant les codes de ce genre qui en plus de ne pas innover ne sont même pas écrits correctement...
Je cite la doc (http://fr.php.net/manual/fr/class.dir.php) :
"Notez la façon dont la valeur de retour de dir::read() est vérifiée dans l'exemple suivant. Nous testons si la valeur est identique (égale et de même type que -- voyez opérateurs de comparaison pour plus de détails) FALSE sinon, toute entrée dans le nom serait évalué à FALSE causera l'arrêt de la boucle (exemple, un répertoire nommé 0)."
Désolé, c'est pas après toi personnellement, mais cette erreur est tellement récurente que vraiment, vraiment, c'est pénible, fatiguant, épuisant, lassant.
Et comme j'en ai aussi marre qu'on m'engueule parce que je dis du mal des sources que j'aime pas, je te remercie d'avoir partagé ce morceau de code avec la communauté de phpcs, c'est une excellente initiative.
Je t'invite cependant à corriger cette petite erreur qui peut éventuellement causer des erreurs inattendues (bien qu'on puisse s'y attendre...).
Je t'invite également à jeter un oeil à la SPL, plus particulièrement RecursiveDirectoryIterator, mais également FilterIterator ou encore ma source XDir (en toute modestie, encore qu'il doit bien trainer une ou deux personnes qui ne seraient pas de cet avis) et qui permet de faire la même chose en 4 lignes.
Je m'excuse encore, j'ai l'air désabusé, c'est probablement parce que je suis un peu blasé.
2 déc. 2010 à 23:03
2 déc. 2010 à 22:10
C'est exactement ce qu'il me fallait et moi aussi j'ai eu du mal à trouver un script qui fait ça.
2 janv. 2010 à 15:50
Je viens de filer le sujet à Patch, Nacre et Kalyx (les toutous à papa) et ils font mieux que toi :
function efface_fichier_dans_rep($path,$ext,$temps) {
if (is_dir($path)) $O = dir($path); else return false;
while (FALSE !($file $O->read())) {
(substr(strrchr($path.'/'.$file, '.'), 1) === $ext && (filemtime($path.'/'.$file)<= (time() - $temps))) ? unlink($path.'/'.$file) : '';
}
$O->close();
return true;
}
;) Tu l'auras compris, c'est juste une note "d'humour" pour rebondir sur ces points :
- ça me fait toujours marrer que Neige s'en prenne plein la tronche avec ses commentaires;
(a noter que je n'ai aucune action chez lui et que je ne lui dois absolument rien ^^)
Je cite :
"se faire insulter"
"moi une merde !"
"aussi violente"
"traiter d'imbécile"
Je n'ai retrouvé nul part des propos qui pourraient justifier les tiens.
Comme cela a été très justement précisé par Inwebo son message n'est qu'"un peu rude", et ses contributions à CS sont parmi les plus importantes.
Tu aurais dû en tenir compte dans tes réponses, mais j'ai bien noté ton "...à mon tour présente mes excuses à ceux que j'ai pu heurter !"
Je ne doute pas que Neige t'en ai persuadé en 1 ou 2 MP.
Malheureusement, sur le fond, je ne peux être que d'accord avec, il y a toujours quelques nases pour massacrer les sources, en des termes au combien différents de ceux de Neige.
Moi même je ne poste jamais, mais je changerai peut être d'avis, en me faisant un plaisir de remettre à leurs places ces guignols.
En résumé :
Il faut savoir se mettre à la place des débutants, respecter leur travail et les encourager dans leur progression
Il faut savoir se mettre à la place des membres expérimentés qui voient passer des dizaine de sources de qualité contestable alors qu'ils ont répété des centaines de fois certaines "bonnes pratiques"
Il faut savoir casser, même méchamment, les sources ou les messages du forum (surtout) qui relèvent du foutage de gueule (et il y en a crois moi)
- pour en revenir à la source écrite très rapidement par mes potes canins (:o)) elle ne relève qu'à moitié de l'humour :
On cherche ici des fichiers ayant une certaine extension afin de les supprimer selon leur date de modification
Dans ce contexte pourquoi s'embêter à faire trop de tests ? (., .., pathinfo, ...)
Pourquoi tester is_object ?
Les tests de la validité du répertoire et du bon déroulement de la suppression me paraissent quant à eux nécessaires
(en cas de réclamation quant au code vite écrit => s'adresser aux crocs acérés de mes toutous) ^^
Cordialement,
Kohntark
30 déc. 2009 à 04:17
Comme quoi, les livres ont vraiment du bon ! -|^
Allez, je pense que ce bout code est maintenant valide pour toutes et tous, et s'il rend service à l'une ou l'autre j'en serais très heureux !
Je ne sais pas si je posterais encore, car ce n'est pas vraiment mon truc...(de poster)
Bien que finalement, je suis heureux d'avoir fait la connaissance d'un gars du plateau des millevaches, depuis l'Armorique !
Merci à vous !
et mes meilleurs vœux pour l'année qui s'annonce !
30 déc. 2009 à 03:54
J'ai tendance à dire que les deux méthodes se valent. Je ne sais pas si l'une est plus rapide que l'autre, il faudrait bencher, mais pour la différence que ça représente, je suis certain, sans avoir besoin de vérifier, que c'est complètement négligeable (bon pour traiter 3 millions de fichiers, ça peut commencer à prendre de l'importance, mais bon, de l'ordre du dixième de seconde, alors...)
Bref. J'ai tendance à utiliser pathinfo pour des fichiers avec chemin complet (puisque cette fonction est capable de séparer le répertoire, le nom du fichier et l'extension). Mais bon, c'est une habitude, pas une vérité absolue.
30 déc. 2009 à 03:44
Neigedhiver, J'espère que tu n'as rien contre : pathinfo($file, PATHINFO_EXTENSION) bon, ça fait plus de caractères que substr($file, -4), mais je pense que Apache peut supporter cela non ?
Plus sérieusement, si c'est PHPment correcte, c'est une autre méthode pour vérifier une extension de fichier tout simplement.
Sinon, et si tu as le temps peux-tu nous donner si possible une explication succincte pour faire progresser la communauté.
30 déc. 2009 à 00:59
La Goudale, pas de problème... Ici, on a la Félis, brassée à Felletin avec de l'eau de source (non pasteurisée, donc fermentation encore en bouteille) et la 1000 (parce que plateau de millevaches).
Quelques litres, l'autre, hé... Pourquoi si peu ?
SUJET
Ah oui, j'avais été tellement obnubilé par mon problème avec readdir() que j'avais pas fait gaffe à ça.
Le mieux pour vérifier qu'un fichier se termine bien pas png est encore de vérifier avec substr :
if (substr($file, -4) == '.png' && .....)
29 déc. 2009 à 22:24
Par contre :
- Tu n'utilises pas la bonne méthode pour tester l'extension d'un fichier. Imagine un nom de fichier avec des points à l'intérieur.
- Je rajouterai en paramètre le type de fichier, et la durée en seconde, comme cela, hop pas besoin de retoucher au code si un utilisateur veut se servir de ton script.
> Neighedhiver , quelques litres par personne suffiront de la Divine ou Goudal, mais avec modération hein.
28 déc. 2009 à 21:05
Ils sont où les fichiers ?
Si c'est pour mettre un petit bout de code à quoi cela sert de poster cela pour régler ses comptes :(
Bonne soirée
28 déc. 2009 à 19:58
A te lire c'est un honneur de que se faire insulter par Neigedhiver, j'en prends bonne note !
Je veux bien recevoir, ce que tu souhaites dire sur ma contribution, car à vrai dire et pour être tout à fait honnête, mon code fonctionne parfaitement sur mon site et je n'ai rien compris à ce qu'écrit Neigedhiver... Peut-être que je suis dans un cas particulier ou que ce qu'il dit ne se produit pas sur mon site !
Je pense que phpcs.com est fait pour partager et progresser et non pas se faire traiter d'imbécile de la première neige fondue (pour faire un jeu de mot avec Maître Neigedhiver)
en tout cas c'était la première fois que je postais une contribution!
Maintenant pour les bières, j'en veux bien une !
Cordialement,
28 déc. 2009 à 19:58
Sinon la pêche, pas pour moi. Mais les bières, pas de soucis... Combien de litres je prévois ?
28 déc. 2009 à 19:05
Il ne faut pas le prendre comme cela, car Neigedhiver donne d'excellents conseils et si tu veux progresser essaye de ne pas prendre la mouche et replonge toi dans ton code. C'est vrai que c'était un peu "rude" comme message de sa part mais si tu fais un tour sur ce site tu verras qu'il a dû répéter ce qu'il vient de te dire quelques centaines de fois, il a pris le temps de te répondre ce qui est déjà un compliment, non ?
Moi par contre j'avais des choses à dire sur ta source à mon humble niveau bien sûr.
Allez Neigedhiver sort les bières et on va faire un partie de pêche, c'est vrai que c'est relaxant.
28 déc. 2009 à 13:03
Ca devient lassant les codes de ce genre qui en plus de ne pas innover ne sont même pas écrits correctement...
Je cite la doc (http://fr.php.net/manual/fr/class.dir.php) :
"Notez la façon dont la valeur de retour de dir::read() est vérifiée dans l'exemple suivant. Nous testons si la valeur est identique (égale et de même type que -- voyez opérateurs de comparaison pour plus de détails) FALSE sinon, toute entrée dans le nom serait évalué à FALSE causera l'arrêt de la boucle (exemple, un répertoire nommé 0)."
Désolé, c'est pas après toi personnellement, mais cette erreur est tellement récurente que vraiment, vraiment, c'est pénible, fatiguant, épuisant, lassant.
Et comme j'en ai aussi marre qu'on m'engueule parce que je dis du mal des sources que j'aime pas, je te remercie d'avoir partagé ce morceau de code avec la communauté de phpcs, c'est une excellente initiative.
Je t'invite cependant à corriger cette petite erreur qui peut éventuellement causer des erreurs inattendues (bien qu'on puisse s'y attendre...).
Je t'invite également à jeter un oeil à la SPL, plus particulièrement RecursiveDirectoryIterator, mais également FilterIterator ou encore ma source XDir (en toute modestie, encore qu'il doit bien trainer une ou deux personnes qui ne seraient pas de cet avis) et qui permet de faire la même chose en 4 lignes.
Je m'excuse encore, j'ai l'air désabusé, c'est probablement parce que je suis un peu blasé.