<?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; ¬e.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 -->