UBICAR CADENA EXACTA DENTRO DE OTRA

Iniciado por dperniam, 29 Diciembre 2011, 15:31 PM

0 Miembros y 1 Visitante están viendo este tema.

dperniam

Buenos Dias amigos:
Tengo un problema para ubicar la aparicion exacta de una cadena dentro de otra, tengo un string donde tengo varios indicadores tales como:

$string="CONTADOR_ENVIO_00: 20292; CONTADOR_ENVIO_04: 029293; CONTADOR_ENVIO: 282828"

Los numeros que aparecen luego de cada CONTADOR_ENVIO son variables y generados por otro script. Lo que yo deseo hacer es cada cierto tiempo tomar el trozo de texto que aparece despues de  cada variable de CONTADOR ENVIO y a traves de un "substr" y un "explode" tomar el nuuevo numero.

Lo estoy haciendo a traves de strstr de la siguiente manera


<?php

$string
="CONTADOR_ENVIO_00: 20292;  CONTADOR_ENVIO_04: 029293; CONTADOR_ENVIO: 282828";
$ubicar="CONTADOR_ENVIO";

echo 
$cadena=strstr($string$ubicar); 
?>



El problema es que cuando quiero ubicar a "CONTADOR_ENVIO:"  me toma el primero que consigue que es "CONTADOR_ENVIO_00", y yo deseo que la salida sea: CONTADOR_ENVIO: 282828";

Pueden ayudarme a encontrar una manera de que la busqueda sea la cadena exacta y no, la aproximada???

Espero haberme explicado bien.
Saludos Cordiales

AckeR

Nuevamente puedes utilizar la función explode para identificar algún caracter, así poder dividir la cadena y escoger la que utilizarás.

Yo lo haría de esta manera:

Código (php) [Seleccionar]


$string="CONTADOR_ENVIO_00: 20292;  CONTADOR_ENVIO_04: 029293; CONTADOR_ENVIO: 282828"; //Cadena

$dividido = explode(";", $string); //identifico el caracter ";" de donde comenzaré a realizar la división de la cadena y estas se almacenarán en un array.

for($i=0;$i<sizeof($dividido);$i++) // Recorremos el Array.
{
    echo $dividido[$i]."<br/>";   // Mostramos los Resultados.
}



Espero que te sirva ;)

Suerte.-!

...DaR LaS GraCiaS No CuestA NadA...

dark_sargon

Lo que publicó AckeR es justo lo que pensaba. Cabe recordar que sizeof() es un alias de count().

Aunque podrías usar el código que tienes, solo debes tener en cuenta que strstr() buscará la primera coincidencia. Viendo la forma del string puedes cambiar el valor de $ubicar así:

Código (php) [Seleccionar]
<?php

$string
="CONTADOR_ENVIO_00: 20292;  CONTADOR_ENVIO_04: 029293; CONTADOR_ENVIO: 282828";
$ubicar="CONTADOR_ENVIO:"// Sólo agrégale :

echo $cadena=strstr($string$ubicar); 
?>
http://www.actimediaonline.com
Diseño Web, animación y más.

http://www.ciudadoscura.com
Diseño Web, electrónica, programación, móviles y más.

Og.

Y para cuando necesites aun mas precision, exsisten las expresiones regulares.

Código (php) [Seleccionar]

$string="CONTADOR_ENVIO_00: 20292;  CONTADOR_ENVIO_04: 029293; CONTADOR_ENVIO: 282828";
preg_match($string, "/CONTADOR_ENVIO: \d*/", $matches);
print_r($matches);
|-