Page 1 sur 1

Détection string avec ereg

Posté : 28 mars 2006, 19:05
par Jeaf16
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

Posté : 28 mars 2006, 19:26
par Truc
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);

Posté : 29 mars 2006, 07:06
par mario
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"
*/
?>

Posté : 01 avr. 2006, 03:06
par Jeaf16
Merci à vous 2 !
Ca marche à merveille !

Fabien