As expected, grapheme_stripos() does return boolean FALSE if the needle is not found in the haystack.
Use strict type comparison to check for that condition, like:
if (FALSE === grapheme_stripos('a', 'b')) {print 'Needle not found';}(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
grapheme_stripos — Encuentra la posición en grafema de la primera ocurrencia en una cadena, insensible a mayúsculas/minúsculas
Estilo procedimental
Encuentra la posición en grafema de la primera ocurrencia en una cadena, realizando una búsqueda insensible a mayúsculas/minúsculas.
haystackLa cadena a examinar. Debe estar en formato UTF-8 válido.
needleLa cadena a buscar. Debe estar en formato UTF-8 válido.
offset
       El parámetro offset permite especificar la posición en la haystack
       donde comienza la búsqueda, expresada en grafemas (y no en bytes o caracteres).
       Si el offset es negativo, se trata con respecto al final de
       la cadena de caracteres.
       La posición devuelta siempre se da con respecto al inicio de
       haystack, independientemente del valor de offset.
      
   Devuelve la posición, en forma de entero. Si needle no es encontrado,
   grapheme_stripos() devuelve false.
  
| Versión | Descripción | 
|---|---|
| 7.1.0 | Se añadió el soporte para offsets negativos. | 
Ejemplo #1 Ejemplo con grapheme_stripos()
<?php
$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) forma normalizada "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) forma normalizada "D"
$char_O_diaeresis_nfd = "O\xCC\x88"; // 'LATIN CAPITAL LETTER O WITH DIAERESIS' (U+00D6) forma normalizada "D"
print grapheme_stripos( $char_a_ring_nfd . $char_a_ring_nfd . $char_o_diaeresis_nfd, $char_O_diaeresis_nfd);
?>El ejemplo anterior mostrará:
2
