[PHP] operateur Like

operateur Like [PHP] - PHP - Programmation

Marsh Posté le 10-03-2007 à 22:04:06    

Bonjour
 
voila, j'ai un petit soucis
 
j'aimerais tester une variable qui contient du texte.
ce texte est en fait la partie gauche d'un texte plus grand. (avec un substr)
j'aimerais tester cette partie.
 
j'ai donc essayer avec un if ($var like "text%" )
 
mais ca n'a pas l'air de marcher, et du coup je sais pas trop comment faire.
une idée ?


Message édité par chico008 le 10-03-2007 à 22:14:30
Reply

Marsh Posté le 10-03-2007 à 22:04:06   

Reply

Marsh Posté le 10-03-2007 à 23:31:28    

Bonsoir Chico008,  
 
Voici une proposition de réponse.
(je pense que "like" est réservé à mysql);
 

Code :
  1. <?PHP
  2. $mon_texte ="la petite voiture rouge";
  3. $ma_recherche_valide = "voiture";
  4. $ma_recherche_foireuse = "paris";
  5. // Avec strpos
  6. $testeur = strpos ($mon_texte, $ma_recherche_valide);
  7. Echo 'Voila ce qu\'affiche "strpos" si la recherche est valide : '.$testeur;
  8. Echo '<br>';
  9. $testeur = strpos ($mon_texte, $ma_recherche_foireuse);
  10. Echo 'Voila ce qu\'affiche "strpos" si la recherche n\'est pas valide : '.$testeur;
  11. Echo '<br><br>';
  12. Echo "Dans ce premier cas, la chaine a ete trouvee  si \$testeur != ''   ";
  13. Echo '<hr>';
  14. // Avec strstr  
  15. $testeur = strstr ($mon_texte, $ma_recherche_valide);
  16. Echo 'Voila ce qu\'affiche "strstr" si la recherche est valide : '.$testeur;
  17. Echo '<br>';
  18. $testeur = strstr ($mon_texte, $ma_recherche_foireuse);
  19. Echo 'Voila ce qu\'affiche "strstr" si la recherche n\'est pas valide : '.$testeur;
  20. Echo '<br><br>';
  21. Echo "Dans ce second cas aussi, la chaine a ete trouvee si \$testeur != ''   ";
  22. ?>


 
 

Reply

Marsh Posté le 11-03-2007 à 00:20:30    

le problème que j'ai, c'est que ce que je cherche est toujours au debut de ma chaine, doncen strpos j'aurais toujours 0, et j'ai quand meme essayer, mais apparement moi il fait pas la difference en un vide et un 0 du coup mon test ne marche pas.
 
par contre j'ai reussi a m'en tirer avec la fonction strstr
 
Merci ;)

Reply

Marsh Posté le 11-03-2007 à 17:02:56    

chico008 a écrit :

le problème que j'ai, c'est que ce que je cherche est toujours au debut de ma chaine, doncen strpos j'aurais toujours 0, et j'ai quand meme essayer, mais apparement moi il fait pas la difference en un vide et un 0 du coup mon test ne marche pas.
 
par contre j'ai reussi a m'en tirer avec la fonction strstr
 
Merci ;)


 
En testant si strpos() === FALSE tu peux différencier le vrai false du 0.
 


AVERTISSEMENT
Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE, utilisable dans une condition if simple. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.


 
http://be2.php.net/strpos

Reply

Sujets relatifs:

Leave a Replay

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