public static function stripos($s, $needle, $offset = null)
	{
		if (! ReflectionTypeHint::isValid()) return false;
		if (is_null($s)) return $s;

		if ($offset === null || $offset < 0) $offset = 0;
		if (function_exists('mb_stripos')) return mb_stripos($s, $needle, $offset, 'utf-8');

		#optimization block (speed improve)
		#{{{
		$ascii_int = intval(self::is_ascii($s)) + intval(self::is_ascii($needle));
		if ($ascii_int === 1) return false;
		if ($ascii_int === 2) return stripos($s, $needle, $offset);
		#}}}

		$s = self::convert_case($s, CASE_LOWER, false);
		if ($s === false) return false;
		$needle = self::convert_case($needle, CASE_LOWER, false);
		if ($needle === false) return false;
		return self::strpos($s, $needle, $offset);
	}
public static function stripos($s, $needle, $offset = null)
	{
		if (! ReflectionTypeHint::isValid()) return false;
		if (is_null($s)) return $s;

		if ($offset === null || $offset < 0) $offset = 0;
		if (function_exists('mb_stripos')) return mb_stripos($s, $needle, $offset, 'utf-8');

		#optimization block (speed improve)
		#{{{
		$ascii_int = intval(self::is_ascii($s)) + intval(self::is_ascii($needle));
		if ($ascii_int === 1) return false;
		if ($ascii_int === 2) return stripos($s, $needle, $offset);
		#}}}

		$s = self::convert_case($s, CASE_LOWER, false);
		if ($s === false) return false;
		$needle = self::convert_case($needle, CASE_LOWER, false);
		if ($needle === false) return false;
		return self::strpos($s, $needle, $offset);
	}
public static function stripos ( $ s , $ needle , $ offset = null ) { if ( ! ReflectionTypeHint :: isValid ( ) ) return false ; if ( is_null ( $ s ) ) return $ s ; if ( $ offset === null || $ offset < 0 ) $ offset = 0 ; if ( function_exists ( 'mb_stripos' ) ) return mb_stripos ( $ s , $ needle , $ offset , 'utf-8' ) ; #optimization block (speed improve)
 #{{{
 $ ascii_int = intval ( self :: is_ascii ( $ s ) ) + intval ( self :: is_ascii ( $ needle ) ) ; if ( $ ascii_int === 1 ) return false ; if ( $ ascii_int === 2 ) return stripos ( $ s , $ needle , $ offset ) ; #}}}
 $ s = self :: convert_case ( $ s , CASE_LOWER , false ) ; if ( $ s === false ) return false ; $ needle = self :: convert_case ( $ needle , CASE_LOWER , false ) ; if ( $ needle === false ) return false ; return self :: strpos ( $ s , $ needle , $ offset ) ; }
Find position of first occurrence of a case-insensitive string.

@param   string|null    $s       The entire string
@param   string|int     $needle  The searched substring
@param   int|null       $offset  The optional offset parameter specifies the position from which the search should be performed
@return  int|bool|null           Returns the numeric position of the first occurrence of needle in haystack.
If needle is not found, will return FALSE.
Find position of first occurrence of a case - insensitive string .