<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.ereg-replace">
 <refnamediv>
  <refname>ereg_replace</refname>
  <refpurpose>Replace regular expression</refpurpose>
 </refnamediv>
 
 <refsect1 role="description">
  &reftitle.description;
  <methodsynopsis>
   <type>string</type><methodname>ereg_replace</methodname>
   <methodparam><type>string</type><parameter>pattern</parameter></methodparam>
   <methodparam><type>string</type><parameter>replacement</parameter></methodparam>
   <methodparam><type>string</type><parameter>string</parameter></methodparam>
  </methodsynopsis>
  <simpara>
   This function scans <parameter>string</parameter> for matches to
   <parameter>pattern</parameter>, then replaces the matched text
   with <parameter>replacement</parameter>.
  </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>
       A POSIX extended regular expression.
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>replacement</parameter></term>
     <listitem>
      <para>
       If <parameter>pattern</parameter> contains parenthesized substrings,
       <parameter>replacement</parameter> may contain substrings of the form
       <literal>\<replaceable>digit</replaceable></literal>, which will be
       replaced by the text matching the digit'th parenthesized substring; 
       <literal>\0</literal> will produce the entire contents of string.
       Up to nine substrings may be used. Parentheses may be nested, in which
       case they are counted by the opening parenthesis.
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>string</parameter></term>
     <listitem>
      <para>
       The input string.
      </para>
     </listitem>
    </varlistentry>
   </variablelist>
  </para>
 </refsect1>

 <refsect1 role="returnvalues">
  &reftitle.returnvalues;
  <para>
   The modified string is returned. If no matches are found in 
   <parameter>string</parameter>, then it will be returned unchanged.
  </para>
 </refsect1>

 <refsect1 role="examples">
  &reftitle.examples;
  <para>
   For example, the following code snippet prints "This was a test"
   three times:
  </para>
  <para>
   <example>
    <title><function>ereg_replace</function> example</title>
    <programlisting role="php">
<![CDATA[
<?php

$string = "This is a test";
echo str_replace(" is", " was", $string);
echo ereg_replace("( )is", "\\1was", $string);
echo ereg_replace("(( )is)", "\\2was", $string);

?>
]]>
    </programlisting>
   </example>
  </para>
  <para>
   One thing to take note of is that if you use an integer value as
   the <parameter>replacement</parameter> parameter, you may not get
   the results you expect. This is because
   <function>ereg_replace</function> will interpret the number as
   the ordinal value of a character, and apply that. For instance:
  </para>
  <para>
   <example>
    <title><function>ereg_replace</function> example</title>
    <programlisting role="php">
<![CDATA[
<?php
/* This will not work as expected. */
$num = 4;
$string = "This string has four words.";
$string = ereg_replace('four', $num, $string);
echo $string;   /* Output: 'This string has   words.' */

/* This will work. */
$num = '4';
$string = "This string has four words.";
$string = ereg_replace('four', $num, $string);
echo $string;   /* Output: 'This string has 4 words.' */
?>
]]>
    </programlisting>
   </example>
  </para>
  <para>
   <example>
    <title>Replace URLs with links</title>
    <programlisting role="php">
<![CDATA[
<?php
$text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
                     '<a href="\\0">\\0</a>', $text);
?>
]]>
    </programlisting>
   </example>
  </para>
 </refsect1>

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

 <refsect1 role="seealso">
  &reftitle.seealso;
  <para>
   <simplelist>
    <member><function>ereg</function></member>
    <member><function>eregi</function></member>
    <member><function>eregi_replace</function></member>
    <member><function>str_replace</function></member>
    <member><function>preg_replace</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
-->