Détection string avec ereg

Eléphanteau du PHP | 42 Messages

28 mars 2006, 19:05

Bonjour

Ma question n'a pas l'air compliqué mais je ne trouve pas la solution.

En fait je veux juste savoir si une valeur se trouve dans un tableau

Un exemple basique :
$valeurs=array("bateau","voile","train","avion");
$string="J'aime le bateau";

if (ereg($valeurs,$string))
{
  return true;
}
else
{
  return false;
}
mais ça ne marche pas j'ai un message (Notice: Array to string conversion).

Merci de votre aide
Fabien

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

28 mars 2006, 19:26

Salut,

proposition:
$valeurs=array("bateau","voile","train","avion");
$string="J'aime le bateau"; 

function rech($valeurs,$string)
{	
	foreach ($valeurs as $val)
	{
		if (ereg($val,$string)) 	
			return true;			
	}
	return false;
}

echo rech($valeurs,$string);

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 768 Messages

29 mars 2006, 07:06

Autre proposition insenssible à la casse sans passer par les POSIX ou PCRE (plus optimisé ?)
<?php
$valeurs=array("bateau","voile","train","avion");
$string="J'aime le bateau à voile";


foreach($valeurs AS $val){
    echo (stristr($string, $val)) ? $val." se trouve dans \"".$string."\"<br/>" : $val." n'est pas dans \"".$string."\"<br/>";
}

/*
bateau se trouve dans "J'aime le bateau à voile"
voile se trouve dans "J'aime le bateau à voile"
train n'est pas dans "J'aime le bateau à voile"
avion n'est pas dans "J'aime le bateau à voile"
*/
?>
M A R I O
Si une patte de lapin porte bonheur, qu'a-t-il bien pu arriver au lapin ?

Eléphanteau du PHP | 42 Messages

01 avr. 2006, 03:06

Merci à vous 2 !
Ca marche à merveille !

Fabien