<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.ereg">
 <refnamediv>
  <refname>ereg</refname>
  <refpurpose>Regular expression match</refpurpose>
 </refnamediv>
 
 <refsect1 role="description">
  &reftitle.description;
  <methodsynopsis>
   <type>int</type><methodname>ereg</methodname>
   <methodparam><type>string</type><parameter>pattern</parameter></methodparam>
   <methodparam><type>string</type><parameter>string</parameter></methodparam>
   <methodparam choice="opt"><type>array</type><parameter role="reference">regs</parameter></methodparam>
  </methodsynopsis>
  <simpara>
   Searches a <parameter>string</parameter> for matches to the regular
   expression given in <parameter>pattern</parameter> in a case-sensitive
   way.
  </simpara>
  &warn.deprecated.function-5-3-0.removed-6-0-0;
 </refsect1>

 <refsect1 role="parameters">
  &reftitle.parameters;
  <para>
   <variablelist>
    <varlistentry>
     <term><parameter>pattern</parameter></term>
     <listitem>
      <para>
       Case sensitive regular expression.
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>string</parameter></term>
     <listitem>
      <para>
       The input string.
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>regs</parameter></term>
     <listitem>
      <para>
       If matches are found for parenthesized substrings of
       <parameter>pattern</parameter> and the function is called with the
       third argument <parameter>regs</parameter>, the matches will be stored
       in the elements of the array <parameter>regs</parameter>. 
      </para>
      <para>
       <varname>$regs[1]</varname> will contain the substring which starts at
       the first left parenthesis; <varname>$regs[2]</varname> will contain
       the substring starting at the second, and so on.
       <varname>$regs[0]</varname> will contain a copy of the complete string
       matched.
      </para>
     </listitem>
    </varlistentry>
   </variablelist>
  </para>
 </refsect1>

 <refsect1 role="returnvalues">
  &reftitle.returnvalues;
  <para>
   Returns the length of the matched string if a match for
   <parameter>pattern</parameter> was found in <parameter>string</parameter>,
   or &false; if no matches were found or an error occurred.
  </para>
  <para>
   If the optional parameter <parameter>regs</parameter> was not passed or
   the length of the matched string is 0, this function returns 1.
  </para>
 </refsect1>

 <refsect1 role="changelog">
  &reftitle.changelog;
  <para>
   <informaltable>
    <tgroup cols="2">
     <thead>
      <row>
       <entry>&Version;</entry>
       <entry>&Description;</entry>
      </row>
     </thead>
     <tbody>
      <row>
       <entry>4.1.0</entry>
       <entry>
        Up to (and including) PHP 4.1.0 <varname>$regs</varname> will be
        filled with exactly ten elements, even though more or fewer than
        ten parenthesized substrings may actually have matched. This has
        no effect on <function>ereg</function>'s ability to match more
        substrings. If no matches are found, <literal>$regs</literal>
        will not be altered by <function>ereg</function>.
       </entry>
      </row>
     </tbody>
    </tgroup>
   </informaltable>
  </para>
 </refsect1>

 <refsect1 role="examples">
  &reftitle.examples;
  <para>
   <example>
    <title><function>ereg</function> example</title>
    <para>
     The following code snippet takes a date in ISO format (YYYY-MM-DD) and
     prints it in DD.MM.YYYY format:
    </para>
    <programlisting role="php">
<![CDATA[
<?php
if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs)) {
    echo "$regs[3].$regs[2].$regs[1]";
} else {
    echo "Invalid date format: $date";
}
?>
]]>
    </programlisting>
   </example>
  </para>
 </refsect1>

 <refsect1 role="notes">
  &reftitle.notes;
  &note.regex.deprecated;
  <tip>
   <para>
    <function>ereg</function> is deprecated as of PHP 5.3.0. <function>preg_match</function> 
    is the suggested alternative to this function.
   </para>
  </tip>
 </refsect1>

 <refsect1 role="seealso">
  &reftitle.seealso;
  <para>
   <simplelist>
    <member><function>eregi</function></member>
    <member><function>ereg_replace</function></member>
    <member><function>eregi_replace</function></member>
    <member><function>preg_match</function></member>
    <member><function>strpos</function></member>
    <member><function>strstr</function></member>
    <member><function>quotemeta</function></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
-->