J'ai fait un script qui analyse de longues chaines de caracteres et j'ai
besoin d'effectuer différentes commandes en fonction des 5 premiers
caracteres de celles ci :
pour ce faire j'utilise :
switch (true){
case ( ereg("12345", $data) ):
print '$data est un chaine 12345';
break;
case ( ereg("54321", $data) ):
print '$data est un chaine 54321';
break;
default:
print 'invalid data';
}
car l'ordre de ces 5 premiers caracteres ne peut pas se retrouver dans
la suite de la chaine ...
Je sais qu'il éxiste pas mal de facons de faire cela, mais pourriez vous
me dire quelle serait la facon la plus performante pour le faire ?
(de maniere a ce que php n'analyse pas toute la chaine mais que les 5
premiers caracteres ...)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Guillaume Bouchard
erickrefener wrote:
case ( ereg("12345", $data) ):
Je sais qu'il éxiste pas mal de facons de faire cela, mais pourriez vous me dire quelle serait la facon la plus performante pour le faire ? (de maniere a ce que php n'analyse pas toute la chaine mais que les 5 premiers caracteres ...)
Bonjour. le fonction substr est ton amie.
http://www.php.net/substr
if(substr($data,0,5) == '12345')){ .. }
On ne le repetera jamais assez, il n'existe pas que les expressions régulieres dans la vie. Principe, si votre masque de recherche ne contient pas d'expression reguliere, cela n'a pas à être une regex.
Note, tu aurais pu accelerer le systeme en mettant ^12345 dans ton masque, il se serait contenté de regarder le debut de la chaine.
-- Guillaume.
erickrefener wrote:
case ( ereg("12345", $data) ):
Je sais qu'il éxiste pas mal de facons de faire cela, mais pourriez vous
me dire quelle serait la facon la plus performante pour le faire ?
(de maniere a ce que php n'analyse pas toute la chaine mais que les 5
premiers caracteres ...)
Bonjour.
le fonction substr est ton amie.
http://www.php.net/substr
if(substr($data,0,5) == '12345')){
..
}
On ne le repetera jamais assez, il n'existe pas que les expressions
régulieres dans la vie. Principe, si votre masque de recherche ne
contient pas d'expression reguliere, cela n'a pas à être une regex.
Note, tu aurais pu accelerer le systeme en mettant ^12345 dans ton
masque, il se serait contenté de regarder le debut de la chaine.
Je sais qu'il éxiste pas mal de facons de faire cela, mais pourriez vous me dire quelle serait la facon la plus performante pour le faire ? (de maniere a ce que php n'analyse pas toute la chaine mais que les 5 premiers caracteres ...)
Bonjour. le fonction substr est ton amie.
http://www.php.net/substr
if(substr($data,0,5) == '12345')){ .. }
On ne le repetera jamais assez, il n'existe pas que les expressions régulieres dans la vie. Principe, si votre masque de recherche ne contient pas d'expression reguliere, cela n'a pas à être une regex.
Note, tu aurais pu accelerer le systeme en mettant ^12345 dans ton masque, il se serait contenté de regarder le debut de la chaine.
-- Guillaume.
loufoque
Message d'origine de erickrefener :
J'ai fait un script qui analyse de longues chaines de caracteres et j'ai besoin d'effectuer différentes commandes en fonction des 5 premiers caracteres de celles ci.
car l'ordre de ces 5 premiers caracteres ne peut pas se retrouver dans la suite de la chaine ...
Je sais qu'il éxiste pas mal de facons de faire cela, mais pourriez vous me dire quelle serait la facon la plus performante pour le faire ? (de maniere a ce que php n'analyse pas toute la chaine mais que les 5 premiers caracteres ...)
substr() puis strstr() ereg() tu peux déjà le rayer de ton vocabulaire pour toujours A la limite un preg_match() bien fait, mais je pense que ce sera plus long.
Message d'origine de erickrefener :
J'ai fait un script qui analyse de longues chaines de caracteres et j'ai
besoin d'effectuer différentes commandes en fonction des 5 premiers
caracteres de celles ci.
car l'ordre de ces 5 premiers caracteres ne peut pas se retrouver dans
la suite de la chaine ...
Je sais qu'il éxiste pas mal de facons de faire cela, mais pourriez vous
me dire quelle serait la facon la plus performante pour le faire ?
(de maniere a ce que php n'analyse pas toute la chaine mais que les 5
premiers caracteres ...)
substr() puis strstr()
ereg() tu peux déjà le rayer de ton vocabulaire pour toujours
A la limite un preg_match() bien fait, mais je pense que ce sera plus long.
J'ai fait un script qui analyse de longues chaines de caracteres et j'ai besoin d'effectuer différentes commandes en fonction des 5 premiers caracteres de celles ci.
car l'ordre de ces 5 premiers caracteres ne peut pas se retrouver dans la suite de la chaine ...
Je sais qu'il éxiste pas mal de facons de faire cela, mais pourriez vous me dire quelle serait la facon la plus performante pour le faire ? (de maniere a ce que php n'analyse pas toute la chaine mais que les 5 premiers caracteres ...)
substr() puis strstr() ereg() tu peux déjà le rayer de ton vocabulaire pour toujours A la limite un preg_match() bien fait, mais je pense que ce sera plus long.