<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.mbstring.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'function.mb-ereg-replace-callback.php',
    1 => 'mb_ereg_replace_callback',
    2 => 'Buscar y reemplazar mediante expresi&oacute;n regular con soporte multi byte utilizando una funci&oacute;n de devoluci&oacute;n de llamada',
  ),
  'up' => 
  array (
    0 => 'ref.mbstring.php',
    1 => 'Funciones de strings multibyte',
  ),
  'prev' => 
  array (
    0 => 'function.mb-ereg-replace.php',
    1 => 'mb_ereg_replace',
  ),
  'next' => 
  array (
    0 => 'function.mb-ereg-search.php',
    1 => 'mb_ereg_search',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/mbstring/functions/mb-ereg-replace-callback.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.mb-ereg-replace-callback" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">mb_ereg_replace_callback</h1>
  <p class="verinfo">(PHP 5 &gt;= 5.4.1, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">mb_ereg_replace_callback</span> &mdash; <span class="dc-title">Buscar y reemplazar mediante expresión regular con soporte multi byte utilizando una función de devolución de llamada
  </span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.mb-ereg-replace-callback-description">
  <h3 class="title">Descripción</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>mb_ereg_replace_callback</strong></span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$pattern</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.callable.php" class="type callable">callable</a></span> <code class="parameter">$callback</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$string</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.string.php" class="type string">string</a></span></span> <code class="parameter">$options</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong></span></span><br>): <span class="type"><span class="type"><a href="language.types.string.php" class="type string">string</a></span>|<span class="type"><a href="language.types.singleton.php" class="type false">false</a></span>|<span class="type"><a href="language.types.null.php" class="type null">null</a></span></span></div>

  <p class="para rdfs-comment">
   Busca los <code class="parameter">string</code> que coinciden con el argumento
   <code class="parameter">pattern</code>, luego reemplaza los textos que coinciden
   con el retorno de la función <code class="parameter">callback</code>.
  </p>
  <p class="para">
    El comportamiento de esta función es casi idéntico a <span class="function"><a href="function.mb-ereg-replace.php" class="function">mb_ereg_replace()</a></span>,
    a excepción de que el argumento
    <code class="parameter">replacement</code> debe especificar una función de devolución de llamada
    <code class="parameter">callback</code>.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.mb-ereg-replace-callback-parameters">
  <h3 class="title">Parámetros</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">pattern</code></dt>
     <dd>
      <p class="para">
       La expresión regular.
      </p>
      <p class="para">
       Los caracteres multi byte pueden ser utilizados en el <code class="parameter">pattern</code>.
      </p>
     </dd>
    
    
     <dt><code class="parameter">callback</code></dt>
     <dd>
      <p class="para">
        Un callback que será llamado y se le pasará un array de elementos coincidentes
        en la cadena de caracteres <code class="parameter">string</code>. El callback debe retornar
        la cadena reemplazada.
      </p>
      <p class="para">
        Con frecuencia será necesario utilizar la función <code class="parameter">callback</code>
        para <span class="function"><strong>mb_ereg_replace_callback()</strong></span> solo una vez.
        En este caso se pueden utilizar las
        <a href="functions.anonymous.php" class="link">funciones anónimas</a> para
        declarar una función de devolución de llamada al momento de llamar a la función
        <span class="function"><strong>mb_ereg_replace_callback()</strong></span>. Al hacerlo de esta manera
        se tiene toda la información necesaria para la llamada de la función
        en un solo lugar, lo que permite evitar saturar el espacio de nombres
        de las funciones con un callback de función que no se utiliza en otro lugar.
      </p>
     </dd>
    
    
     <dt><code class="parameter">string</code></dt>
     <dd>
      <p class="para">
       El <span class="type"><a href="language.types.string.php" class="type string">string</a></span> que debe ser verificado.
      </p>
     </dd>
    
    
     <dt><code class="parameter">options</code></dt>
     <dd>
      <p class="para">
       La opción de búsqueda. Para más explicaciones, consulte <span class="function"><a href="function.mb-regex-set-options.php" class="function">mb_regex_set_options()</a></span>.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.mb-ereg-replace-callback-returnvalues">
  <h3 class="title">Valores devueltos</h3>
  <p class="para">
   Retorna un <span class="type"><a href="language.types.string.php" class="type string">string</a></span> en caso de éxito, o <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> en caso de error.
   Si <code class="parameter">string</code> no es válido para el codificación actual,
   <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong> es retornado.
  </p>
 </div>


 <div class="refsect1 changelog" id="refsect1-function.mb-ereg-replace-callback-changelog">
  <h3 class="title">Historial de cambios</h3>
  <p class="para">
   <table class="doctable informaltable">
    
     <thead>
      <tr>
       <th>Versión</th>
       <th>Descripción</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>8.0.0</td>
       <td>
        <code class="parameter">options</code> ahora es nullable.
       </td>
      </tr>

      <tr>
       <td>7.1.0</td>
       <td>
        Esta función verifica si <code class="parameter">string</code> es válido para
        la codificación actual.
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.mb-ereg-replace-callback-examples">
  <h3 class="title">Ejemplos</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Ejemplo #1 Ejemplo con <span class="function"><strong>mb_ereg_replace_callback()</strong></span></strong></p>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">// este texto fue utilizado en 2002<br />// se desea actualizarlo para 2003<br /></span><span style="color: #0000BB">$text </span><span style="color: #007700">= </span><span style="color: #DD0000">"April fools day is 04/01/2002\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$text</span><span style="color: #007700">.= </span><span style="color: #DD0000">"Last christmas was 12/24/2001\n"</span><span style="color: #007700">;<br /></span><span style="color: #FF8000">// la función de devolución de llamada<br /></span><span style="color: #007700">function </span><span style="color: #0000BB">next_year</span><span style="color: #007700">(</span><span style="color: #0000BB">$matches</span><span style="color: #007700">)<br />{<br />  </span><span style="color: #FF8000">// como de costumbre: $matches[0] es la coincidencia completa<br />  // $matches[1] la coincidencia para el primer subpatrón<br />  // encerrado en '(...)' y así sucesivamente<br />  </span><span style="color: #007700">return </span><span style="color: #0000BB">$matches</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">].(</span><span style="color: #0000BB">$matches</span><span style="color: #007700">[</span><span style="color: #0000BB">2</span><span style="color: #007700">]+</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br />}<br />echo </span><span style="color: #0000BB">mb_ereg_replace_callback</span><span style="color: #007700">(<br />            </span><span style="color: #DD0000">"(\d{2}/\d{2}/)(\d{4})"</span><span style="color: #007700">,<br />            </span><span style="color: #DD0000">"next_year"</span><span style="color: #007700">,<br />            </span><span style="color: #0000BB">$text</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>El ejemplo anterior mostrará:</p></div>
    <div class="example-contents screen">
<div class="annotation-interactive examplescode"><pre class="examplescode">April fools day is 04/01/2003
Last christmas was 12/24/2002</pre>
</div>
    </div>
   </div>
  </p>
  <p class="para">
   <div class="example" id="example-2">
    <p><strong>Ejemplo #2 <span class="function"><strong>mb_ereg_replace_callback()</strong></span> utilizando funciones anónimas</strong></p>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">// este texto fue utilizado en 2002<br />// se desea actualizarlo para 2003<br /></span><span style="color: #0000BB">$text </span><span style="color: #007700">= </span><span style="color: #DD0000">"April fools day is 04/01/2002\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$text</span><span style="color: #007700">.= </span><span style="color: #DD0000">"Last christmas was 12/24/2001\n"</span><span style="color: #007700">;<br /><br />echo </span><span style="color: #0000BB">mb_ereg_replace_callback</span><span style="color: #007700">(<br />            </span><span style="color: #DD0000">"(\d{2}/\d{2}/)(\d{4})"</span><span style="color: #007700">,<br />            function (</span><span style="color: #0000BB">$matches</span><span style="color: #007700">) {<br />               return </span><span style="color: #0000BB">$matches</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">].(</span><span style="color: #0000BB">$matches</span><span style="color: #007700">[</span><span style="color: #0000BB">2</span><span style="color: #007700">]+</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br />            },<br />            </span><span style="color: #0000BB">$text</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
 </div>


 <div class="refsect1 notes" id="refsect1-function.mb-ereg-replace-callback-notes">
  <h3 class="title">Notas</h3>

  <blockquote class="note"><p><strong class="note">Nota</strong>: <p class="para">La codificación interna o la
codificación de caracteres especificada por <span class="function"><a href="function.mb-regex-encoding.php" class="function">mb_regex_encoding()</a></span>
se utilizará como codificación de caracteres para esta función.</p></p></blockquote>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.mb-ereg-replace-callback-seealso">
  <h3 class="title">Ver también</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="function.mb-regex-encoding.php" class="function" rel="rdfs-seeAlso">mb_regex_encoding()</a> - Define/Recupera la codificaci&oacute;n de caracteres para las expresiones regulares multioctetos</span></li>
    <li><span class="function"><a href="function.mb-ereg-replace.php" class="function" rel="rdfs-seeAlso">mb_ereg_replace()</a> - Reemplaza segmentos de cadena mediante expresiones regulares</span></li>
    <li><a href="functions.anonymous.php" class="link">Funciones anónimas</a></li>
   </ul>
  </p>
 </div>


</div><?php manual_footer($setup); ?>