Bonsoir,

Voilà je cherche à tester si plusieurs mots sont présents dans une chaines.
Actuellement j’utilise cette méthode.
Je cherche à savoir si ma méthode et optimale ou si il en existe une plus simple.

Merci.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
	function strpos_array($haystack, $needle) {
		if(!is_array($needle)) $needle = array($needle);
		foreach($needle as $what) {
			if((strpos($haystack, $what))!==false) 
				return true;
		}
		return false;
	}
 
	$needle = array('equipement','blanc');
	$haystack = "le chat est blanc";
	if (strpos_array($haystack, $needle))
		echo "KO <br>";
	else 
		echo "OK <br>";
 
	$haystack = "Un equipement est noir";
	if (strpos_array($haystack, $needle))
		echo "KO <br>";
	else 
		echo "OK <br>";
	$haystack = "le poisson est rouge";
	if (strpos_array($haystack, $needle))
		echo "KO <br>";
	else 
		echo "OK <br>";
 
	echo "test terminé";