par
Xenon_54 » 18 sept. 2005, 23:31
Bonjour,
Pourquoi ne pas utiliser la fonction file() afin de charger complètement le fichier dans un tableau pour ensuite utiliser la fonction in_array() ?
Cette fonction ferait exactement le même traitement que vous faites présentement mais en moins de ligne. La fonction in_array() devrait arrêter sa recherche dès qu'il trouvera une occurence de la valeur recherchée.
Pour ceux qui sont toujours sceptique fasse à la performance de cette méthode, une comparaison serait la bienvenue et je me soumettrai volontier aux résultats retournés.
Vous pouvez également utiliser la fonction ip2long() et long2ip() pour tranformer une adresse IP en format numérique. Ceci permet d'avoir une adresse IP plus facile à manipuler puisqu'elle ne comporte plus de points et que des intervalles peuvent être facilement calculés.
La solution de la base de données est également envisageable. Cependant est-ce qu'une connexion vers une base de données SQL vaudrait réellement la peine pour le traitement voulu? S'il y a une connexion déjà établie, alors ce serait une solution envisageable. Dans le cas contraire, il ne serait pas approprié d'en créer une si l'on peut obtenir le même résultat par lecture d'un simple fichier texte.
La base de données pourrait permettre en revange un calcul et une récupération des IP plus facile. Vous pourrez également créer des intervales plus facilement en créant deux champs représentant le début de l'intervale et sa fin.
Bonjour,
Pourquoi ne pas utiliser la fonction file() afin de charger complètement le fichier dans un tableau pour ensuite utiliser la fonction in_array() ?
Cette fonction ferait exactement le même traitement que vous faites présentement mais en moins de ligne. La fonction in_array() devrait arrêter sa recherche dès qu'il trouvera une occurence de la valeur recherchée.
Pour ceux qui sont toujours sceptique fasse à la performance de cette méthode, une comparaison serait la bienvenue et je me soumettrai volontier aux résultats retournés.
Vous pouvez également utiliser la fonction ip2long() et long2ip() pour tranformer une adresse IP en format numérique. Ceci permet d'avoir une adresse IP plus facile à manipuler puisqu'elle ne comporte plus de points et que des intervalles peuvent être facilement calculés.
La solution de la base de données est également envisageable. Cependant est-ce qu'une connexion vers une base de données SQL vaudrait réellement la peine pour le traitement voulu? S'il y a une connexion déjà établie, alors ce serait une solution envisageable. Dans le cas contraire, il ne serait pas approprié d'en créer une si l'on peut obtenir le même résultat par lecture d'un simple fichier texte.
La base de données pourrait permettre en revange un calcul et une récupération des IP plus facile. Vous pourrez également créer des intervales plus facilement en créant deux champs représentant le début de l'intervale et sa fin.