1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-26 00:12:06 +01:00
Files
archived-doc-es/reference/mbstring/functions/mb-ereg-replace-callback.xml
Pedro Antonio Gil Rodríguez b2ea6c6595 Actualización a la últma versión
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@331588 c90b9560-bf6c-de11-be94-00142212c4b1
2013-09-29 13:03:06 +00:00

207 lines
6.8 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: a0efd60818b767c51af678fd7a62c7521665f35d Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.mb-ereg-replace-callback" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>mb_ereg_replace_callback</refname>
<refpurpose>Realiza una búsqueda y sustitución de una expresión regular con soporte multibyte usando una llamada de retorno
</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>mb_ereg_replace_callback</methodname>
<methodparam><type>string</type><parameter>pattern</parameter></methodparam>
<methodparam><type>callable</type><parameter>callback</parameter></methodparam>
<methodparam><type>string</type><parameter>string</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>option</parameter><initializer>"msr"</initializer></methodparam>
</methodsynopsis>
<para>
Examina <parameter>string</parameter> para buscar coincidencias con
<parameter>pattern</parameter>, luego reemplaza el texto coincidente
con la salida de la función <parameter>callback</parameter>.
</para>
<para>
El comportamiento de esta función es casi idéntico al de <function>mb_ereg_replace</function>,
excepto que en lugar del parámetro
<parameter>replacement</parameter>, se debería especificar una llamada de retorno dada por
<parameter>callback</parameter>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>pattern</parameter></term>
<listitem>
<para>
El patrón de la expresión regular.
</para>
<para>
Se pueden usar caracteres multibyes en <parameter>pattern</parameter>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>callback</parameter></term>
<listitem>
<para>
Una llamada de retorno que será invocada y se le proporcionará un array de elementos coincidentes
en el string <parameter>subject</parameter>. La llamada de retorno debería
devolver el string de sustitución.
</para>
<para>
A menudo será necearia la función <parameter>callback</parameter>
para una <function>mb_ereg_replace_callback</function> en un sólo lugar.
En este caso se puede usar una
<link linkend="functions.anonymous">función anónima</link> para
declarar una llamada de retorno dentro de la llamada a
<function>mb_ereg_replace_callback</function>. De esta manera
se tendrá toda la información para la llamada en un lugar para no
abarrotar el espacion de nombres de funciones con un nombre de de una función de llamada
de retorno que no se usará.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>string</parameter></term>
<listitem>
<para>
El <type>string</type> a comprobar.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>option</parameter></term>
<listitem>
<para>
Las condiciones de comparación se pueden establecer por el parámetro
<parameter>option</parameter>. Si se especifica <literal>i</literal> para este
parámetro, no se tendrán en cuenta las mayúsculas/minúsculas. Si se especifica
<literal>x</literal>, se ingorarán los espacios en blanco. Si se especifica
<literal>m</literal>, la comparación se ejecutará en modo multilínea y se incluirán
los saltos de línea en '.'. Si se especifica <literal>p</literal>,
la comparación se ejecutará en modo POSIX, por lo que los saltos de línea
se cosiderarán como caracteres normales. Observe que <literal>e</literal>
no se puede usar en <function>mb_ereg_replace_callback</function>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
El <type>string</type> resultante en caso de éxito, o &false; en caso de error.
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
&note.mbstring.encoding.internal;
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo de <function>mb_ereg_replace_callback</function></title>
<programlisting role="php">
<![CDATA[
<?php
// este texto se uso en 2002
// queremos obtener esto para fechas hasta 2003
$texto = "El día de los Santos Inocentes es el 28/12/2002\n";
$texto.= "Las últimas navidades fueron el 24/12/2001\n";
// la función de llamada de retonro
function siguiente_año($coincidencias)
{
// como siempre: $coincidencias[0] es la coincidencia completa
// $coincidencias[1] la coincidencia para el primer subpatrón
// encerrado entre '(...)', etc.
return $coincidencias[1].($coincidencias[2]+1);
}
echo mb_ereg_replace_callback(
"(\d{2}/\d{2}/)(\d{4})",
"siguiente_año",
$texto);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
El día de los Santos Inocentes es el 28/12/2003
Las últimas navidades fueron el 24/12/2002
]]>
</screen>
</example>
</para>
<para>
<example>
<title><function>mb_ereg_replace_callback</function> usando una función anónima
admitida en PHP 5.3.0 o posterior</title>
<programlisting role="php">
<![CDATA[
<?php
// este texto se uso en 2002
// queremos obtener esto para fechas hasta 2003
$texto = "El día de los Santos Inocentes es el 28/12/2002\n";
$texto.= "Las últimas navidades fueron el 24/12/2001\n";
echo mb_ereg_replace_callback(
"(\d{2}/\d{2}/)(\d{4})",
function ($coincidencias) {
return $coincidencias[1].($coincidencias[2]+1);
},
$texto);
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>mb_regex_encoding</function></member>
<member><function>mb_ereg_replace</function></member>
<member><link linkend="functions.anonymous">Funciones anónimas</link></member>
<member>&seealso.callback;</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
-->