Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala galera!
Tenho uma página em HTML e estou usando a função preg_match junto com uma ER para localizar a LONGITUDE e LATITUDE de um determinado lugar lugar da página.
Olha a função:
preg_match("|Latitude:([0-9a-zA-Z -_\+\!\?@]+)|", $output, $latitude);
echo "Latitude: ".$latitude[1];
Ok, até aqui o código funciona. Vamos tomar como exemplo a $latitude com valor = -47.000 .
O problema começa quando tento somar esse valor:
// Houston temos um problema!
echo $latidute[1] + 180;
Aparece o seguinte erro:
Notice: Undefined variable: latidute in D:\XAMPP\htdocs...
A variável sem a soma, aparece certinho. Quando coloco ela na some aparece esse erro.
Parece que a $latidute[1] é uma string, mas as variáveis do php são auto-declaráveis, então a coisa complica.
Alguém teria uma ideia?
Obrigado desde já! =D
Ixi rapaaiz, ta errado mesmo, desculpe a falta de atenção. :natallaugh:
Mas ocorre o seguinte,
se eu escrever
echo $latitude[1] + 180;
É mostrado só 180, a $latitude[1] é omitida e o valor não é somado.
Agora, quando eu mostro apenas $latitude[1], aparece normal.
O que será que ocorre?
Para não somar, a sua variável está perdendo valor em algum ponto do script.
Poste um mínimo necessário do código para testarmos, e vermos o erro ocorrendo.
Segue o código
<?php
$output = "PÁGINA HTML CONTENDO VÁRIAS INFORMAÇÕES, ENTRE ELAS A LATITUDE";
preg_match("|Latitude:([0-9a-zA-Z -_\+\!\?@]+)|", $output, $latitude);
if(!isset($latitude[1])){
echo "Desconhecido";
}
echo $latitude[1] . "<br /><br />"; // APARECE O VALOR DA VARIÁVEL
echo $latitude[1] + 180; // AQUI A VARIÁVEL É OMITIDA E SÓ APARECE 180
?>Somou normalmente aqui, qndo coloque uma latitude lá na string.
Não tem nada de errado com o código apresentado.
>
Somou normalmente aqui, qndo coloque uma latitude lá na string.
Não tem nada de errado com o código apresentado.
A variável $latitude é um array, quando coloco uma string também funciona.
Talvez de certo converter os elementos da string para int, pois quando uso o var_dump, aparece o seguinte
array(2) { [0]=> string(38) "Latitude:-22.400000" [1]=> string(29) "-22.400000" }
Isso quer dizer que meu valor $latitude[1] realmente é uma string, e por isso não soma. Tentei usar o int_val para converter os valores, porém o resultado volta uma string vazia.
Estava pensando em utilizar o int_val em um foreach
na verdade, então é um float.
Mas está fazendo a soma sim:
<?php
$output = "Latitude: -22.400000";
preg_match("|Latitude:([0-9a-zA-Z -_\+\!\?@]+)|", $output, $latitude);
echo $latitude[1] . "<br /><br />"; // -22.400000
echo (float)$latitude[1] + 180; // 157.6
o erro não está nesse trecho que vc postou, mas sim em outro lugar ai no script q vc tá usando$output = file_get_contents("localizar.html"
preg_match("|Latitude:([0-9a-zA-Z -_\+\!\?@]+)|", $output, $latitude);
);
echo $latitude[1] + 1 // Não soma de jeito nenhum
Veja, estou utilizando um file_get_contents para retornar a página na string $output
heuaheuaheuhau Leia o Erro não exite a variável $latidute porque a variável é $latitude