COMPTER DES PAGES PRÉCISES (NEWS, TUTOS, ARTICLES) POUR STATS

Signaler
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
-
Messages postés
100
Date d'inscription
mardi 29 novembre 2005
Statut
Membre
Dernière intervention
8 mai 2009
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/45291-compter-des-pages-precises-news-tutos-articles-pour-stats

Messages postés
100
Date d'inscription
mardi 29 novembre 2005
Statut
Membre
Dernière intervention
8 mai 2009

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.
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Mais là c'est du php5 par contre.
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
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'));
?>
Messages postés
100
Date d'inscription
mardi 29 novembre 2005
Statut
Membre
Dernière intervention
8 mai 2009

En fait, je viens de revérifier et j'ai un doute sur la casse... si vous pouviez m'éclairer.
Messages postés
100
Date d'inscription
mardi 29 novembre 2005
Statut
Membre
Dernière intervention
8 mai 2009

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...
Messages postés
592
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
4 décembre 2008

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
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Oui en plus tu aurais tout pu faire dans le while().
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
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.
Messages postés
592
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
4 décembre 2008

Salut,
Pourquoi faire deux boucles ?
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Hello,

<?php
$rep = '.';
echo count(glob($rep.'/*.fiche.php'));
?>