<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="function.grapheme-stripos" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
 <refnamediv>
  <refname>grapheme_stripos</refname>
  <refpurpose>Find position (in grapheme units) of first occurrence of a case-insensitive string</refpurpose>
 </refnamediv>
 <refsect1 role="description">
  &reftitle.description;
  <para>&style.procedural;</para>
  <methodsynopsis>
   <type class="union"><type>int</type><type>false</type></type><methodname>grapheme_stripos</methodname>
   <methodparam><type>string</type><parameter>haystack</parameter></methodparam>
   <methodparam><type>string</type><parameter>needle</parameter></methodparam>
   <methodparam choice="opt"><type>int</type><parameter>offset</parameter><initializer>0</initializer></methodparam>
  </methodsynopsis>
  <para>
   Find position (in grapheme units) of first occurrence of a case-insensitive string
  </para> 
 </refsect1>

 <refsect1 role="parameters">
  &reftitle.parameters;
  <para>
   <variablelist>
    <varlistentry>
     <term><parameter>haystack</parameter></term>
     <listitem>
      <para>
       The string to look in. Must be valid UTF-8.
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>needle</parameter></term>
     <listitem>
      <para>
       The string to look for. Must be valid UTF-8. 
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>offset</parameter></term>
     <listitem>
      <para>
       The optional <parameter>offset</parameter> parameter allows you to specify where in <parameter>haystack</parameter> to
       start searching as an offset in grapheme units (not bytes or characters).
       If the offset is negative, it is treated relative to the end of the string.
       The position returned is still relative to the beginning of <parameter>haystack</parameter>
       regardless of the value of <parameter>offset</parameter>.
      </para>
     </listitem>
    </varlistentry>
   </variablelist>
  </para>
 </refsect1>
   
 
 <refsect1 role="returnvalues">
  &reftitle.returnvalues;
  <para>
   Returns the position as an integer. If <parameter>needle</parameter> is not found, <function>grapheme_stripos</function> will return &false;.
  </para>
 </refsect1>
 
 <refsect1 role="changelog">
  &reftitle.changelog;
  <informaltable>
   <tgroup cols="2">
    <thead>
     <row>
      <entry>&Version;</entry>
      <entry>&Description;</entry>
     </row>
    </thead>
    <tbody>
     <row>
      <entry>7.1.0</entry>
      <entry>
       Support for negative <parameter>offset</parameter>s has been added.
      </entry>
     </row>
    </tbody>
   </tgroup>
  </informaltable>
 </refsect1>

 <refsect1 role="examples">
  &reftitle.examples;
  <example>
   <title><function>grapheme_stripos</function> example</title>
   <programlisting role="php">
<![CDATA[
<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"
$char_O_diaeresis_nfd = "O\xCC\x88"; // 'LATIN CAPITAL LETTER O WITH DIAERESIS' (U+00D6) normalization form "D"

print grapheme_stripos( $char_a_ring_nfd . $char_a_ring_nfd . $char_o_diaeresis_nfd, $char_O_diaeresis_nfd);

?>
]]>
   </programlisting>
  </example>
  &example.outputs;
  <screen>
<![CDATA[
2
]]>
  </screen>
 </refsect1>

 <refsect1 role="seealso">
  &reftitle.seealso;
  <para>
   <simplelist>
    <member><function>grapheme_stristr</function></member>
    <member><function>grapheme_strpos</function></member>
    <member><function>grapheme_strripos</function></member>
    <member><function>grapheme_strrpos</function></member>
    <member><function>grapheme_strstr</function></member>
    <member>
     <link xlink:href="&uri.unicode.graphemes;">
      Unicode Text Segmentation: Grapheme Cluster Boundaries
     </link>
    </member>
   </simplelist>
  </para>
 </refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->
