Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/03/2003, 15:28
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
mm Pues cuando tienes dudas sobre si existe alguna función para alguna taréa .. lo mejor es que mires en el capítulo correspondiente al tema que sabes q es, en este caso "cadenas de caracteres .. o strings .."

Ahora .. si no encuentras una función especifica que haga tu cometido .. Parate un momento y piensa que funciones te podrían hacer falta de entre todas las q veas en ese capítulo del manual ..

Y .. bueno . despues de la "teoría" .. el ejemplo de práctica .. Te invito a ver en el manual de php (www.php.net/manual/es) cada una de las funciones usadas para q entiendas bien como trabaja el algoritmo ..

Código PHP:
<?
// buscar_palabras()
// entrada: string,string
// salida: array (cada elemento 1 coincidencia)
function buscar_palabras($cadena,$buscar){
 
// inciar array resultados ..
 
$coincidencias=array();
 
// buscar palabras
 
$palabras=explode(" ",$cadena);
 
// recorrer el array $palabras
 
foreach ($palabras as $palabra){
    
// buscar coincidencias de la cadena a buscar en la palabra
    
if (substr_count($palabra,$buscar) > 0){   
        
// si hay coincidencia se añade la palabra al array de salida
        
$coincidencias[]=$palabra;
    }
 }
 
// se devuelve el array de coincidencias
 
return $coincidencias;
}


// llamada a la función ..
$cadena="hay casas bonitas en Madrid";
$resultado=buscar_palabras($cadena,"n");

// Un ejemplo completo de uso:
// concatenamos los elementos del aray con el caracter , (coma)
echo implode(",",$resultado);

?>
Seguramente .. con expresiones regulares se podría resumir el código a un par de líneas .. Seria bueno que mirases tambien esa posibilidad.

Un saludo,

<editado>
Cambíe strpos() por substr_count() para que realmente fuera "entrada: string,string .. " .. Con strpos() solo se aceptaba un caracter (y no cadena) como secuencia a buscar ..
</editado>

Última edición por Cluster; 07/03/2003 a las 15:49