cs_linkid
Messages postés100Date d'inscriptionmardi 29 novembre 2005StatutMembreDernière intervention 8 mai 2009 4 janv. 2008 à 00:04
Je viens de tester strpos et stripos et ça ne fonctionne pas chez moi (je suis chez free donc pas de php5 je crois)
Donc pour le moment, je vais laisser strstr car ça marche.
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 3 janv. 2008 à 23:41
Mais là c'est du php5 par contre.
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 3 janv. 2008 à 23:40
stripos()
et glob fonctionne à partir de php 4.3, ça m'étonne un peu que ça ne fonctionne pas chez toi...et ça fait exactement ce que tu veux. Mais bref.
Tu sais, des manières de faire plus simple que la tienne, il y en a des tonnes en fait, c'est ce que l'on essaye de te dire.
Par exemple :
<?php
function myFilter($v) {
return false !== stripos($v, 'fiche.php');
}
echo count(array_filter(scandir('.'), 'myFilter'));
?>
cs_linkid
Messages postés100Date d'inscriptionmardi 29 novembre 2005StatutMembreDernière intervention 8 mai 2009 3 janv. 2008 à 23:29
En fait, je viens de revérifier et j'ai un doute sur la casse... si vous pouviez m'éclairer.
cs_linkid
Messages postés100Date d'inscriptionmardi 29 novembre 2005StatutMembreDernière intervention 8 mai 2009 3 janv. 2008 à 23:26
J'avais déjà testé glob() pour voir et ça ne fesait pas ce que je voulais... de plus, j'ai testé ta commande et elle ne fonctionnait pas chez moi.
Enfin, j'ai hésité entre strpos et strstr et j'ai lu que strstr ne tenait pas compte de la casse, ce qui est très bien si on met des majuscules par erreur ou quoi que ce soit...
cs_yoman64
Messages postés592Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 4 décembre 2008 3 janv. 2008 à 22:55
ah Malalam tu m'as devancé , j'étais justement en train de lire la documentation de glob pour être sur de ce que j'allais dire :P
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 3 janv. 2008 à 22:54
Oui en plus tu aurais tout pu faire dans le while().
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 3 janv. 2008 à 22:53
Sinon, au niveau de ton code : évite de mettre des fonctions du genre count() dans un for().Parce qu'elle est alors exécutée à chaque itération de ta boucle, alors que tu n'en as besoin qu'une seule fois.
Et strstr() n'est pas appropriée là, du tout :
if(false !== strpos($chaine, $files[$i])) {
$nb ++;
}
strstr() extrait toute une partie de chaîne, c'est bien plus lent que strpos() qui se contente de dire si une chaîne se trouve dans une autre, et si oui, à quelle position.
cs_yoman64
Messages postés592Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 4 décembre 2008 3 janv. 2008 à 22:52
Salut,
Pourquoi faire deux boucles ?
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 3 janv. 2008 à 22:48
4 janv. 2008 à 00:04
Donc pour le moment, je vais laisser strstr car ça marche.
3 janv. 2008 à 23:41
3 janv. 2008 à 23:40
et glob fonctionne à partir de php 4.3, ça m'étonne un peu que ça ne fonctionne pas chez toi...et ça fait exactement ce que tu veux. Mais bref.
Tu sais, des manières de faire plus simple que la tienne, il y en a des tonnes en fait, c'est ce que l'on essaye de te dire.
Par exemple :
<?php
function myFilter($v) {
return false !== stripos($v, 'fiche.php');
}
echo count(array_filter(scandir('.'), 'myFilter'));
?>
3 janv. 2008 à 23:29
3 janv. 2008 à 23:26
Enfin, j'ai hésité entre strpos et strstr et j'ai lu que strstr ne tenait pas compte de la casse, ce qui est très bien si on met des majuscules par erreur ou quoi que ce soit...
3 janv. 2008 à 22:55
3 janv. 2008 à 22:54
3 janv. 2008 à 22:53
Et strstr() n'est pas appropriée là, du tout :
if(false !== strpos($chaine, $files[$i])) {
$nb ++;
}
strstr() extrait toute une partie de chaîne, c'est bien plus lent que strpos() qui se contente de dire si une chaîne se trouve dans une autre, et si oui, à quelle position.
3 janv. 2008 à 22:52
Pourquoi faire deux boucles ?
3 janv. 2008 à 22:48
<?php
$rep = '.';
echo count(glob($rep.'/*.fiche.php'));
?>