Foros del Web » Programando para Internet » PHP »

Ayuda con expr regular

Estas en el tema de Ayuda con expr regular en el foro de PHP en Foros del Web. Amigos: quiero eliminar ciertas palabras de una frase...... y no quiero usar str_replace() porque me puede sacar parte de una palabra. Hice algo...... pero no ...
  #1 (permalink)  
Antiguo 16/08/2009, 23:28
 
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 14 años, 8 meses
Puntos: 10
Ayuda con expr regular

Amigos: quiero eliminar ciertas palabras de una frase...... y no quiero usar str_replace() porque me puede sacar parte de una palabra.

Hice algo...... pero no remueve las palabras de los extremos excepto que haya espacio.......

Código PHP:
<?
$str
="megaupload jDownloader download free";

$words = array ('rapidshare','megaupload','free','download');

foreach (
$words as $wd){
  
$expr "|[ ]($wd)[ ]|is";
  
$str preg_replace ($expr,' ',$str);
}  

echo 
$str;
?>
Podria agregar y luego quitarle los espacios.......o quizas me puedas ayudar con la expresion

Código PHP:
<?
$str
="megaupload jDownloader download free";
$words = array ('rapidshare','megaupload','free','download');

echo 
quita_palabras ($str,$words);

Function 
quita_palabras ($str,$words){

  
$str ' '.$str.' ';
  foreach (
$words as $wd){
    
$expr "|[ ]?($wd)[ ]|is";
    
$str preg_replace ($expr,' ',$str);
  }  
  
$str trim ($str);
  return 
$str;
}

?>
GRACIAS!
  #2 (permalink)  
Antiguo 16/08/2009, 23:43
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Ayuda con expr regular

Podrias hacerlo de esta forma

Código php:
Ver original
  1. <?php
  2. $str="megaupload jDownloader download free";
  3.  
  4. $words = array ('rapidshare','megaupload','free','download');
  5.  
  6. foreach ($words as $wd){
  7.   $expr = "|\s?($wd)\s?|is";
  8.   $str = preg_replace ($expr,' ',$str);
  9. }  
  10.  
  11. echo $str;

Pero el problema que te publicara
Cita:
j er
Lo mejor sería devidir las palabras por los espacios y colocarlos en un array luego con in_array haces la busqueda. Me refiero

Código PHP:
Ver original
  1. <?php
  2. $str="megaupload jDownloader download free buy";
  3. $explode = explode(" ", $str);
  4. $words = array ('rapidshare','megaupload','free','download');
  5. $str2 = Array();
  6. foreach ($explode as $wd){
  7.     if(!in_array($wd, $words)){
  8.         $str2[] = $wd;
  9.     }
  10. }  
  11. echo implode(" ", $str2);
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 17/08/2009, 06:24
 
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 14 años, 8 meses
Puntos: 10
Respuesta: Ayuda con expr regular

muy buena idea ABIMA...C

te agradezco UN monton....... ojalá pudieras pasarte por "PHP orientado a objetos" donde tengo un problemita con la herencia y el uso de __get()
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:34.