Foros del Web » Programando para Internet » PHP »

no puedo hacer una simple suma :(

Estas en el tema de no puedo hacer una simple suma :( en el foro de PHP en Foros del Web. que tal forer@s obtengo dos valores ejecutando una url: Código PHP: <?php     exec ( 'curl http://ruta' , $resultado );     for( $i = 0 ;  $i < ...
  #1 (permalink)  
Antiguo 10/04/2014, 19:39
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años, 6 meses
Puntos: 23
no puedo hacer una simple suma :(

que tal forer@s

obtengo dos valores ejecutando una url:
Código PHP:
<?php
    exec
('curl http://ruta',$resultado);
    for(
$i=0$i<count($resultado);$i++){
        
$tot_1 $resultado[3];
        
$tot_2 $resultado[4];
    }
    
?>
luego trate de hacer una simple suma:

Código PHP:
<?php
    $total 
$tot1+$tot2;
    
?>
y me da cero :(
les hice un echo y me salio: 04322+00468=0

luego pense que debia pasar los valores a int, y les hice un:
Código PHP:
<?php
    $tot1 
intval($tot1);
    
$tot2 intval($tot2);
    
?>
y el resultado me volvio a dar cero, les volvi a hacer echo y salio: 0+0=0

D:!

entonces hice un var_dump a las variables y me salio

string(14) "04322"
string(14) "00468"

entonces ya no se como puedo hacer para parsearlos, con intval y con (integer) me devuelve cero

alguna idea?
gracias
  #2 (permalink)  
Antiguo 10/04/2014, 20:34
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años, 6 meses
Puntos: 23
Respuesta: no puedo hacer una simple suma :(

hola ya vi como me lo esta regresando en realiadad:

Tm = <mt>04357</mt>+<bt>00463</bt>

en xml :/

entonces como deberia leer los valores?
Código PHP:
<?php
exec
('curl http://ruta',$resultado); 
    for(
$i=0$i<count($resultado);$i++){ 
        
$tot_1 $resultado[3]; 
        
$tot_2 $resultado[4]; 
    }
?>
esto es lo que creo que no funciona
  #3 (permalink)  
Antiguo 10/04/2014, 21:20
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: no puedo hacer una simple suma :(

¿Te has dado cuenta que primero asignas los valores a las variables $tot_1 y $tot_2 pero luego intentas sumar con las variables $tot1 y $tot2? Creo que ahí está el error, en que te equivocaste con los nombres de las variables, te falta el guión bajo en cada una de ellas.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #4 (permalink)  
Antiguo 11/04/2014, 07:06
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años, 6 meses
Puntos: 23
Respuesta: no puedo hacer una simple suma :(

Hola, ah ese fue error mio al poner el ejemplo en realidad asi no se llaman mis variables es que siempre trato de poner los ejemplos mas sencillo para que sean facil de entender.
  #5 (permalink)  
Antiguo 11/04/2014, 07:35
 
Fecha de Ingreso: abril-2014
Ubicación: Canarias!
Mensajes: 150
Antigüedad: 10 años, 7 meses
Puntos: 10
Respuesta: no puedo hacer una simple suma :(

Buenas Tardes,

Veamos si podemos ayudar un poco...

Antes que nada, que devuelve exactamente el curl, ¿comprobastes que es un array? hazle un print_r para comprobarlo.

Luego..
"Tm = <mt>04357</mt>+<bt>00463</bt>"
¿Es este el valor que te devuelve la variable $resultado?

Unos consejos:

Date cuenta de una cosa que haces en el for

Código PHP:
<?php
exec
('curl http://ruta',$resultado); 
    for(
$i=0$i<count($resultado);$i++){ 
        
$tot_1 $resultado[3]; 
        
$tot_2 $resultado[4]; 
    }
Supongamos que resultado devuelve un array, entonces resultado tendrá X posiciones, cada uno con un valor diferente.

*El for dice que haga lo que está entre las {} tantas veces como posiciones hay en el array. Pero realmente lo que está entre las {} no varia. Es decir, si hay 4 posiciones, las 4 veces hace lo mismo.

Lo que hace en cada una de las 4 veces (suponiendo que hay 4 posiciones) es asignarle a la variable tot1 la tercera posicione del array y a tot2 la cuarta posicion del array, si eso quieres hacer no necesitas el for, tan solo

Código PHP:
<?php
exec
('curl http://ruta',$resultado); 
$tot_1 $resultado[3]; 
 
$tot_2 $resultado[4];
*No uses "?>", el cerrar php se usa únicamente cuando estás mezclando php con otro lenguaje, como html.

Un saludo
  #6 (permalink)  
Antiguo 11/04/2014, 10:08
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 17 años, 3 meses
Puntos: 194
Respuesta: no puedo hacer una simple suma :(

No me cierra el var dump

String(14) "04322" pero si contiene solo 5 bytes, por que dice 14?

Luego
"Hola, ah ese fue error mio al poner el ejemplo en realidad asi no se llaman mis variables es que siempre trato de poner los ejemplos mas sencillo para que sean facil de entender."

Copia el código tal cual lo tienes, o no podremos determinar si hay un error, no sirve que lo escribas simplificado, deberías copiar el código textual y completo.
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #7 (permalink)  
Antiguo 11/04/2014, 10:31
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 19 años, 5 meses
Puntos: 88
Respuesta: no puedo hacer una simple suma :(

prueba con esto
Código PHP:
Ver original
  1. $tot_1 = str_replace("<mt>","",$resultado[3]);
  2.  $tot_1 = str_replace("</mt>","",$tot_1);
  3.  $tot_2 = str_replace("<bt>","",$resultado[4]);
  4.  $tot_2 = str_replace("</bt>","",$tot_2);
luego los conviertes a enteros para un mejor resultado, creo que usando expresiones regulares seria mas comodo.

saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #8 (permalink)  
Antiguo 11/04/2014, 10:36
 
Fecha de Ingreso: abril-2014
Ubicación: Canarias!
Mensajes: 150
Antigüedad: 10 años, 7 meses
Puntos: 10
Respuesta: no puedo hacer una simple suma :(

Bueno, para eso que use la funcion strip_tags(), es mas limpio ya que quita todas las etiquetas, tambien los que no conocemos todavia que podria devolver ese enlace
  #9 (permalink)  
Antiguo 11/04/2014, 10:44
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 19 años, 5 meses
Puntos: 88
Respuesta: no puedo hacer una simple suma :(

Cita:
Iniciado por Qazser Ver Mensaje
Bueno, para eso que use la funcion strip_tags(), es mas limpio ya que quita todas las etiquetas, tambien los que no conocemos todavia que podria devolver ese enlace
ok, es correcto, no sabia de la existencia de strip_tags, es lo bueno en sitios como este, asi se aprenden cosas nuevas, gracias.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.

Etiquetas: simple, suma, variable
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 21:59.