Ver Mensaje Individual
  #3 (permalink)  
Antiguo 17/11/2011, 08:22
prcarreno
 
Fecha de Ingreso: noviembre-2011
Mensajes: 55
Antigüedad: 11 años, 1 mes
Puntos: 3
Respuesta: detectar palabras y repeticiones en cadena

Código PHP:
Ver original
  1. $cadena = 'abxxxcocheasamcasaoycochesdfsfcochekdkcasa';
  2.  echo 'Cadena: ' .$cadena.'<br>';
  3.  
  4. $palabras = array("casa", "coche","fsf");
  5. $palabras_reemplazar = array("EDIFICIO", "BMW","OTRAS");
  6. $y=0;
  7. foreach($palabras as $encuentrame){
  8.    
  9.     $cadena = 'abxxxcocheasamcasaoycochesdfsfcochekdkcasa';
  10.     $valida_existe = substr_count($cadena,$encuentrame);
  11.     if ($valida_existe == 0) {
  12.         echo "<br>La cadena '$encuentrame' no está en '$cadena' <br>";
  13.     } else {
  14.         $largo_encuentra = strlen($encuentrame);
  15.         for($x=0; $x < strlen($cadena); $x++){
  16.             $posic_x = strpos($cadena, $encuentrame, $x);
  17.             if($posic_x > 0){
  18.                 $posicion[] = $posic_x;
  19.                 $x = $x+$largo_encuentra;
  20.             }
  21.            
  22.         }
  23.        
  24.         $posicion = array_unique($posicion);
  25.         $posicion = implode(",",$posicion);
  26.        
  27.         echo "<br><br>La cadena '$encuentrame' existe ($valida_existe) en las posiciones ($posicion) en la '$cadena' <br>";
  28.         $cadena = str_replace($encuentrame,"<b>".$palabras_reemplazar[$y]."</b>",$cadena);
  29.         echo $cadena;
  30.         $posicion = array();
  31.     }
  32.     $y++;
  33. }

Prueba con eso, creo que igual se puede seguir optimizando y acortando el codigo ...

saludos