Page 1 sur 1

si texte comprend...

Posté : 31 déc. 2006, 01:59
par dr.smoogy
Hello,

Y-a t'il moyen en php de dire cela:

si tel texte contient le caractère ? alors on affiche cela..

Exemple:
$texte='salut ?';
if($texte comprend le caractère ?){
echo "ceci est une question";
}else{
echo "ceci n'est pas une question";
}
merci

A+

Posté : 31 déc. 2006, 02:08
par Xenon_54
<?php
$texte='salut ?';
if (FALSE !== strpos($texte, '?')){
   echo "ceci est une question";
} else {
    echo "ceci n'est pas une question";
} 
?>

Posté : 31 déc. 2006, 02:10
par Ajoloca
Bonsoir,
Ceci devrait te convenir mais tu as aussi les expressions régulières
$texte='salut ?';
if(false!== (stristr($texte, '?'))){
	echo "ceci est une question";
}else{
	echo "ceci n'est pas une question";
}

Posté : 31 déc. 2006, 02:11
par Xenon_54
strpos() est plus rapide et moins gourmant:
http://ca.php.net/manual/fr/function.strstr.php
Note : Si vous voulez juste déterminer si un needle particulier se trouve dans la chaîne haystack, utilisez la fonction strpos() qui est plus rapide et qui consomme moins de ressources.

Posté : 31 déc. 2006, 02:15
par Ajoloca
Re,
Tout dépend du besoin.
Si tu gérer les majuscules/minuscules, insensible, ...

Posté : 31 déc. 2006, 02:16
par dr.smoogy
Nickel, merci !

Posté : 31 déc. 2006, 02:23
par dr.smoogy
je ne comprend pas une chose:

Warning: Wrong parameter count for stristr() in c:\program files\easyphp1-8\www\flashit\test.php on line 6

j'ai cette erreur si je met ceci (exemple):
if(false!== (stristr($texte,'araignée','fourmi'))){
    echo "vous me parler d'insectes";
}

Posté : 31 déc. 2006, 02:25
par Ajoloca
Re,
Cette fonction ne reçoit que deux paramètres, tu lui en passes 3.

Posté : 31 déc. 2006, 02:36
par dr.smoogy
C'est ce que je m'étais dis et j'avais essayé avec strpos() mais sa ne marchait pas non plus.

Posté : 31 déc. 2006, 02:51
par Ajoloca
Si ce que tu veux c'est tester avec plusieurs valeurs, tu devras procéder autrement.
Construit un tableau qui contient les mots que veux tester et boucle sur ce tableau en appelant la fonction à chaque tour de boucle.

QQ chose du style
<?php
$texte = 'On parle d\'insectes comme la fourmi ou l\'araignée';
$mots = Array('araignée','fourmi');
$nbrMots = count($mots);
$insectes = 0;
for($i = 0; $i < $nbrMots; $i++){
   if(false !== (stristr($texte, $mots[$i]))){
      $insectes += 1;
   }
}
echo $insectes . ' trouvés';
?>
C'est juste un exemple.
Je te conseillerai de faire une fonction.

Posté : 31 déc. 2006, 02:53
par Xenon_54
Depuis quand l'araignée est un insecte?

:lol:

Posté : 31 déc. 2006, 02:57
par Ajoloca
Depuis quand l'araignée est un insecte?

:lol:
:tir2:
Depuis que je l'ai dit et que l'as remarqué :-*

Posté : 31 déc. 2006, 03:04
par dr.smoogy
OK, merci je vais travailler ca.

A+

Posté : 31 déc. 2006, 03:06
par fab
Pense a mettre le tag [Résolu] :p

Posté : 31 déc. 2006, 03:10
par dr.smoogy
Ahhhh ce sacré tag['résolu'] :D