Ver Mensaje Individual
  #2 (permalink)  
Antiguo 06/09/2011, 19:39
Avatar de andresdzphp
andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Diferencia entre preg_replace y preg_filter

Cita:
preg_filter() es idéntica a preg_replace() excepto que sólo devuelve los sujetos (posiblemente tranformados) donde hubo una coincidencia.
Código PHP:
Ver original
  1. <?php
  2. $sujeto = array('1', 'a', '2', 'b', '3', 'A', 'B', '4');
  3. $patrón = array('/\d/', '/[a-z]/', '/[1a]/');
  4. $sustitución = array('A:$0', 'B:$0', 'C:$0');
  5.  
  6. echo "preg_filter devuelve\n";
  7. print_r(preg_filter($patrón, $sustitución, $sujeto));
  8.  
  9. echo "preg_replace devuelve\n";
  10. print_r(preg_replace($patrón, $sustitución, $sujeto));
  11. ?>
Cita:
preg_filter devuelve

Array
(
[0] => A:C:1
[1] => B:C:a
[2] => A:2
[3] => B:b
[4] => A:3
[7] => A:4
)

preg_replace devuelve

Array
(
[0] => A:C:1
[1] => B:C:a
[2] => A:2
[3] => B:b
[4] => A:3
[5] => A
[6] => B
[7] => A:4
)
en resumen preg_filter es como hacer un preg_replace + array_diff, antes de PHP 5.3.0 se puede lograr el mismo resultado que preg_filter, combinando estas 2 funciones.

Saludos
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 06/09/2011 a las 20:39 Razón: Más info