Con la función estándar, si queremos buscar varios textos deberíamos repetir la llamada tantas veces como necesitemos.
Para facilitar la tarea tenemos esta función en la que la lista de cadenas a buscar la pasaremos mediante un array y además le podremos decir si es una búsqueda sensible a mayúsculas/minúsculas o no.
La función es la siguiente:
function getMultiPos($haystack, $needles, $sensitive=true, $offset=0){ foreach($needles as $needle) { $result[$needle] = ($sensitive) ? strpos($haystack, $needle, $offset) : stripos($haystack, $needle, $offset); } return $result; }
La llamada a la función sería como veremos a continuación. La primera llamada es sensible a mayúsculas/minúsculas y la segunda no:
$haystack = "A cat in gloves catches no mice."; $needles = array("glove", "mouse", ".", "cat", "No"); var_dump(getMultiPos($haystack, $needles)); /* output: array(5) { ["glove"]=> int(9) ["mouse"]=> bool(false) ["."]=> int(31) ["cat"]=> int(2) ["No"]=> bool(false) } */ var_dump(getMultiPos($haystack, $needles, false)); /* output: array(5) { ["glove"]=> int(9) ["mouse"]=> bool(false) ["."]=> int(31) ["cat"]=> int(2) ["No"]=> int(24) } */
No hay comentarios:
Publicar un comentario