[Résolu]Petite question trés simple pour comparaison entre deux chaine

Petite question trés simple pour comparaison entre deux chaine [Résolu] - PHP - Programmation

Marsh Posté le 26-09-2008 à 01:09:00    

Question trés simple.
Je veux comparer deux chaines  
 

Code :
  1. <?php
  2. if($_SERVER['SCRIPT_NAME'] == "/saison.php" )
  3. echo ' test OK';
  4. ?>


 
J'ai des pages saison-2.php par exemple et je veux que le test de comparaison soit toujours ok.
 
Avec SQL je sais qu'on peut rajouter '%' qui signifie que cela remplace un nombre indeterminé de caractéres. On s'en sert dans les test genre :  
" WHERE cat LIKE '%saison%'  "
 
J'aimerais faire de même avec php et donc j'ai marqué
 

Code :
  1. <?php
  2. if($_SERVER['SCRIPT_NAME'] == "/saison%" )
  3. echo ' test OK';
  4. ?>


 
Mais bon ca marche pas ^^
 
Comment il faut faire alors c'est qu'elle caractére qu'il faut employer ? "%" ?
 
C'est trés con comme question mais je bloque.


Message édité par otagun le 26-09-2008 à 12:40:31

---------------
>>>Go-F1.com Formule 1<<<
Reply

Marsh Posté le 26-09-2008 à 01:09:00   

Reply

Marsh Posté le 26-09-2008 à 09:04:18    

Salut,
 
Le == lors d'une comparaison de chaine t'obligera toujours à avoir le même nombre de caractère, et il n'y a pas de possibilité avec le == d'avoir l'effet d'un like.
 
Une solution est de découper la chaine à la longueur de celle a laquelle tu voudrais la comparer comme ça :
 
<?php
if(substr($_SERVER['SCRIPT_NAME'], 0, strlen('/saison')) == "/saison" )
echo ' test OK';
?>
 
ou encore comparer la position de la sous chaine :
 
<?php
if(strpos($_SERVER['SCRIPT_NAME'], "/saison" ) === 0) # attention a la triple égalité obligatoire (comparaison de type)
echo ' test OK';
?>


Message édité par yellu le 26-09-2008 à 09:05:05
Reply

Marsh Posté le 26-09-2008 à 12:39:25    

D'accord merci beaucoup Yellu je ne savais pas que l'on ne pouvait pas avoir l'effet "Like" avec ==.  
 
Donc j'ai bien compris ton raisonnement pour arriver à la solution d'échange. Qui marche bien entendu. :)
 
Merci beaucoup de m'avoir aidé.  


---------------
>>>Go-F1.com Formule 1<<<
Reply

Sujets relatifs:

Leave a Replay

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