Foros del Web » Programando para Internet » PHP »

Como puedo obtener un valor de una cadena de texto

Estas en el tema de Como puedo obtener un valor de una cadena de texto en el foro de PHP en Foros del Web. Hola amigos, verán sucede que ya no recuerdo bien como se hace esto. Supongamos que tengo una cadena y quiero obtener el numero que hay ...
  #1 (permalink)  
Antiguo 25/04/2010, 22:19
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Como puedo obtener un valor de una cadena de texto

Hola amigos, verán sucede que ya no recuerdo bien como se hace esto.

Supongamos que tengo una cadena y quiero obtener el numero que hay dentro de esta cadena

Código PHP:
Ver original
  1. $cadena = "<div class='style1'>145</div>"

Que puedo hacer para obtener solo el 145??. conciderando que me refiero a la cadena de texto llamada <div class='style1'>

Lo que pasa es que necesito sacar valores de un archivo.

Gracias.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #2 (permalink)  
Antiguo 25/04/2010, 22:29
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Como puedo obtener un valor de una cadena de texto

Necesitas leer sobre expresiones regulares.
__________________
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 25/04/2010, 22:56
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: Como puedo obtener un valor de una cadena de texto

Hola, ya he leido y prácticado, pero se me dificulta hacelo por el uso de expresiones regulares.

Yo quiero usar strrpos, strstr, strlen, etc..

Por favor me podrías ayudar, este tema siempre se me ha complicado.

Supongamos que tengo una cadena

Código PHP:
Ver original
  1. $cadena = "<td>Cantidad</td><td><span>100</span></td>";

Yo me imagino que lo que puedo hacer es especificar apartir de donde quiero buscar y hasta donde quiero buscar

$inicio_cadena = "<td>Cantidad</td><td><span>";
$fin_caden = "</span></td>";

y así poco a poco ir obteniendo el numero que este enmedio.

GRacias.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #4 (permalink)  
Antiguo 25/04/2010, 23:16
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Como puedo obtener un valor de una cadena de texto

Trata de hacerlo con lo que dijiste y nos dejas saber. Te sigo indicando que debes aprender sobre Expresiones Regulares.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 25/04/2010, 23:30
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: Como puedo obtener un valor de una cadena de texto

Hola, ya lo logre jeje.

Bueno aun no del todo porque ahora lo que quiero es extraer los numeros que esten despues de un signo igual en una cadena de texto, mas preciso los numeros que esten despues del unico = que hay en un link

Me echas la manita con esto amigo, gracias. =)

P.D: Aprenderé de expresiones regulares lo prometo jeje
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #6 (permalink)  
Antiguo 25/04/2010, 23:38
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: Como puedo obtener un valor de una cadena de texto

A vaya ya consegui tambien esto.

Como me gusta el PHP, lástima que no le dedique tanto tiempo pero pues espero ya acabar la escuela de una vez por todas. El único tiempo que estoy jugando con el PHP es en vacaciones, 2 veces al año =(

Bien mi código me quedó asi:

Código PHP:
Ver original
  1. <?php
  2. //Defino arrays
  3. $profile_url = '<a href="http://yourPHPforum.com/profile.forum?mode=viewprofile&u=19">Admin</a>'; //recibo esto por $_POST['id']
  4.  
  5.  
  6. //Obtengo el nickname
  7. function sacarnick($TheStr, $sLeft, $sRight){
  8.         $pleft = strpos($TheStr, $sLeft, 0);
  9.         if ($pleft !== false){
  10.                 $pright = strpos($TheStr, $sRight, $pleft + strlen($sLeft));
  11.                 If ($pright !== false) {
  12.                         return (substr($TheStr, $pleft + strlen($sLeft), ($pright - ($pleft + strlen($sLeft)))));
  13.                 }
  14.         }
  15.         return '';
  16. }
  17. $nickname = sacarnick($profile_url,'">','</a>');
  18.  
  19. //Obtengo el ID
  20. function sacarid($TheStr, $sLeft, $sRight){
  21.         $pleft = strpos($TheStr, $sLeft, 0);
  22.         if ($pleft !== false){
  23.                 $pright = strpos($TheStr, $sRight, $pleft + strlen($sLeft));
  24.                 If ($pright !== false) {
  25.                         return (substr($TheStr, $pleft + strlen($sLeft), ($pright - ($pleft + strlen($sLeft)))));
  26.                 }
  27.         }
  28.         return '';
  29. }
  30.  
  31. $profile_id = sacarid($profile_url,'u=','">');
  32.  
  33. //Abrimos código fuente
  34. $connect_link = "http://yourforum/login.forum?redirect=/profile.forum&mode=viewprofile&u=".$profile_id;
  35. $body = 'username=admin&password=123456&login=login&autologin=checked&redirect=/profile.forum&query=mode%3Dviewprofile%26u%3D'.$profile_id;
  36. $options = array('max_redirects' => 3 , 'method' => 'POST', 'content' => $body);
  37. $context = stream_context_create(array('http' => $options));
  38. $page = file_get_contents($connect_link, false, $context);
  39.  
  40. //Buscamos el nombre de usuario en el código fuente
  41. $filtro = '<title>Perfil - '.$nickname.'</title>';
  42.     if(strstr($page,$filtro)){
  43.             //Busco la cantidad de mensajes posteados
  44.             $max_carct = strlen($page);
  45.             $filtro1= 'Cantidad de envíos';
  46.             $filtro2 = '</span></dd></dl><div class="separator">&nbsp;</div><dl id="field_id-13"><dt><span style="color:#05A8FF;">Puntos Vit</span>';
  47.             $total = strpos($page,$filtro1);
  48.             $total2 = strpos($page,$filtro2);
  49.             $total3 = ($max_carct - $total2 - 0);
  50.             $total4 = substr($page,$total,-$total3);
  51.             //Hago otro calculo
  52.             $filtro3 = '<span style="color:#d6d6d6;">';
  53.             $total5 = strstr($total4,$filtro3);
  54.             //Un calculo más
  55.             $filtro4 = '<span class="field_uneditable">';
  56.             $total_msg = substr(strstr($total5,$filtro4), 31);
  57.                    //Validamos mensajes suficientes
  58.                    if($total_msg >= 100) {
  59.                        
  60.                        echo "Te puedes registrar";
  61.                        
  62.                        } else { echo "No es posible tu registro"; } //End if total_msg
  63.                    
  64.                    
  65.     } else { echo "Los datos introducidos son incorrectos."; }
  66. ?>

Espero que le sirva a alguien, saludos
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.

Última edición por iovan; 26/04/2010 a las 00:45

Etiquetas: cadenas
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 15:15.