Recherche dans une chaine

Recherche dans une chaine - PHP - Programmation

Marsh Posté le 24-04-2003 à 15:53:03    

C'est quoi le plus rapide?
Dans easyrss, ils font quelques recherche sous cette forme :

Code :
  1. preg_match("/<\/channel>|<image>|<item>|<textinput>/", $line)


 
Personellement, j'ai tendance à faire

Code :
  1. $i=strpos($line,"<\/channel>",0);
  2. $j=strpos($line,"<image>",$i);
  3. $k=strpos($line,"<item>",$j);
  4. $l=strpos($line,"<textinput>",$k);


 
 
C'est laquelle de ces deux méthodes qui est la plus rapide sur un gros texte?
 
PS : le plus souvent, ils font juste des  

Code :
  1. preg_match("/<title>/", $line)

et là, je suis encore moins sur que leur méthode soit plus rapide que la mienne. ;)

Reply

Marsh Posté le 24-04-2003 à 15:53:03   

Reply

Marsh Posté le 24-04-2003 à 17:21:55    

normalement c'est str_pos mais comme tu l'appelle plusieurs fois mais bon les ereg sont de grosse machine a gaz.

Reply

Marsh Posté le 24-04-2003 à 18:13:03    

A mon avis, 20 strpos restent nettement plus rapide que n'importe quel regexp.
 
A confirmer... (Mais bon, ça semble logique).
 
C'est le même truc que pour les smileys. Les str_replace sont bcp plus rapide que les regexp.

Reply

Marsh Posté le 24-04-2003 à 18:45:20    

je vote aussi pour les strpos...
mais il me se,ble avoir vu un truc sur php.net là dessus, je cherche et j'edite si je trouve
 
Edit: pas retrouvé le lien en question mais vec Google j'ai trouvé ça:
http://urlgreyhot.com/drupal/node/view/468

Instead of preg_match(), you should try strpos(). It's much faster for simple substring searches


Message édité par uriel le 24-04-2003 à 21:50:11

---------------
IVG en france
Reply

Marsh Posté le 24-04-2003 à 21:43:04    

Merci les gas. :)
Ca me rassure ça. :)
 
uriel : c'est simpas de rechercher cet article. Si tu le trouves, ca sera génial, sinon, tant pis. ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed