Hola, estoy realizando un sistema, este sistema se trata de una búsqueda y extraer el dato encontrado, el cual esto va a estar limitado por unos caracteres.
por decir tengo la $cadena que viene de una tabla de la base de datos lo que quiero obtener es: buenos aires, 289, C, 29, San Isidro, Lima, y esto guardarlo en cada tabla se trata de normalización, bueno he desarrollado este algoritmo que si me extrae lo que quiero, el problema es que cuando la cadena extraída estee como la $cadena1 me imprimirá en pantalla esto: Buenos aires Dst. San Isidro Dpto. Lima,el cual esto es erróneo en la avenida. para ello tengo que elaborar una función con dos parámetros ExtraerFrase('datoinicial',cadenaabuscar);, y que el segundo limitador estee codificado del tal forma que me imprima la cadena intermedia entre el carácter inicial y el carácter final.
Caracteres limitadores: Av. , N. , Mz. , Lt. , Dst. , Dpto. etc, Ojo estos datos están en una tabla de la base de datos.
el código es:
$cadena = "Av. Buenos aires N. 289 Mz. C Lt. 29 Dst. San Isidro Dpto. Lima";
$cadena = "Av. Buenos aires Dst. San Isidro Dpto. Lima N. 289 Mz. C Lt. 29";
$cadena1 = "Av. Buenos aires Dst. San Isidro Dpto. Lima N. 289 Mz. C Lt. 29";
función desarrollada:echo ExtraerFrase('Av.','N.',$cadena);
funcion que quiero es: ExtraerFrase('Av.',$cadena);
y que me imprima en los dos casos solo: Buenos aires
Me imprime en pantalla: Buenos aires
$cadena1 me imprime: Buenos aires Dst. San Isidro Dpto. Lima, erróneo.
function ExtraerFrase($estinicial,$estfinal,$cadena)
{
if(strpos($cadena,$estinicial)!==false)
{
$pos=strpos($cadena,$estinicial);
$a=substr($cadena,$pos+strlen($estinicial));
if(strpos($a,$estfinal)!==false)
{
$npos=strpos($a,$estfinal);
$b=substr($a,0,$npos);
return $b;
}
else
return $a;
}
else
return false;
}
Por favor si tienes un algoritmo en PHP que interactivo con la base de datos para la solución de este caso, plis una manito para lograr mi objetivo. o algunas sugerencias que teneis que hacer me lo dice por el foro.
Espero haberme explicado con claridad.
Cualquier cosa os dejo mi correo [email protected]
Gracias...