Foros del Web » Programando para Internet » PHP »

Como cojo los datos de esta URL???

Estas en el tema de Como cojo los datos de esta URL??? en el foro de PHP en Foros del Web. Buenos dias, como puedo recoger los datos de esta url? http://maps.googleapis.com/maps/api/.../json?address= DIRECCION &sensor=true Esta URL devuelve un JSon, pero no se como recogerlos, si pongo ...
  #1 (permalink)  
Antiguo 26/05/2014, 01:16
Avatar de Benderzuelo  
Fecha de Ingreso: mayo-2013
Ubicación: España
Mensajes: 223
Antigüedad: 10 años, 10 meses
Puntos: 5
Como cojo los datos de esta URL???

Buenos dias,

como puedo recoger los datos de esta url?

http://maps.googleapis.com/maps/api/.../json?address=DIRECCION&sensor=true

Esta URL devuelve un JSon, pero no se como recogerlos, si pongo un ECHO me pinta la url y si hago un location me lo pinta en pantalla pero no los puedo recoger,

los datos los mando de manera asincrona y al recibir el resultado lo que hago es parseJSon al resultado pero el tema es como recibo los datos de esta url, que debo hacer?

Muchas gracias

P.D pongo el codigo

Código Javascript:
Ver original
  1. function latLng(direccion){
  2.     var direccion = direccion;
  3.     var m_url = 'js/actions/latLng.php?direccion='+direccion;
  4.     $.post(m_url,function(res){
  5.         var resultado = $.parseJSON(res);
  6.         alert(resultado);
  7.     });
  8. }


y la parte en php

esta es la que hago mal creo¡¡¡

Código PHP:
Ver original
  1. $direccion = $_GET['direccion'].', Valencia';
  2.  
  3. $urlGoogle = 'http://maps.googleapis.com/maps/api/geocode/json?address='.$direccion.'&sensor=true';
  4.  
  5. echo json_encode($urlGoogle);

Última edición por Benderzuelo; 26/05/2014 a las 01:22
  #2 (permalink)  
Antiguo 26/05/2014, 01:26
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Como cojo los datos de esta URL???

Usa la función parse_url()
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 26/05/2014, 04:19
Avatar de Benderzuelo  
Fecha de Ingreso: mayo-2013
Ubicación: España
Mensajes: 223
Antigüedad: 10 años, 10 meses
Puntos: 5
Respuesta: Como cojo los datos de esta URL???

muchas gracias pero no me funciona, me devuelve un ARRAY con la URL descompuesta por dominio, y resto de url...

Yo necesito recoger el Json que me devuelve, si escribes la URL en la barra de navegación y le das a enter con una dirección te devuelve un Json que entre otros datos lleva la latitudy la longitud para poder posicionar un punto en el maps, eso es lo que yo necesito recoger y no se como :(
  #4 (permalink)  
Antiguo 26/05/2014, 04:51
lolainas
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Como cojo los datos de esta URL???

Necesitas usar la extensión cURL
Código PHP:
Ver original
  1. $ch = curl_init("http://maps.googleapis.com/maps/api/geocode/json?address=madrid");
  2. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  #5 (permalink)  
Antiguo 26/05/2014, 06:08
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Como cojo los datos de esta URL???

No es necesario en este caso usar curl...... solo json_decode()

Código PHP:
Ver original
  1. <?php
  2. $direccion = 'Madrid';
  3.  
  4. $geo = file_get_contents("http://maps.googleapis.com/maps/api/geocode/json?address=$direccion&sensor=true");
  5. $array = (json_decode($geo,true));
__________________
Salu2!
  #6 (permalink)  
Antiguo 26/05/2014, 08:42
Avatar de Benderzuelo  
Fecha de Ingreso: mayo-2013
Ubicación: España
Mensajes: 223
Antigüedad: 10 años, 10 meses
Puntos: 5
Respuesta: Como cojo los datos de esta URL???

Lo de file get contents yo tenia entendido que era para coger el contenido de un archivo , no una respuesta que viene en formato json, de todos modos lo he probado y no me funciona chicos.

Ya no se que hacer
  #7 (permalink)  
Antiguo 26/05/2014, 08:49
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Como cojo los datos de esta URL???

Cita:
Iniciado por Benderzuelo Ver Mensaje
Lo de file get contents yo tenia entendido que era para coger el contenido de un archivo , no una respuesta que viene en formato json, de todos modos lo he probado y no me funciona chicos.

Ya no se que hacer
Si miras el codigo que te deje veras que use un parametro opcional en TRUE en json_decode() pero vamos no te funciona ?

O sea... no te sirve un array ? o no lo sabes analizar ? se mas explicito porque a mi correr el codigo que te deje me devuelve en $array esto:

Código PHP:
Ver original
  1. var_dump($array);

Cita:
array(2) { ["results"]=> array(1) { [0]=> array(4) { ["address_components"]=> array(5) { [0]=> array(3) { ["long_name"]=> string(6) "Madrid" ["short_name"]=> string(6) "Madrid" ["types"]=> array(2) { [0]=> string(8) "locality" [1]=> string(9) "political" } } [1]=> array(3) { ["long_name"]=> string(6) "Madrid" ["short_name"]=> string(6) "Madrid" ["types"]=> array(1) { [0]=> string(9) "political" } } [2]=> array(3) { ["long_name"]=> string(6) "Madrid" ["short_name"]=> string(1) "M" ["types"]=> array(2) { [0]=> string(27) "administrative_area_level_2" [1]=> string(9) "political" } } [3]=> array(3) { ["long_name"]=> string(19) "Community of Madrid" ["short_name"]=> string(19) "Community of Madrid" ["types"]=> array(2) { [0]=> string(27) "administrative_area_level_1" [1]=> string(9) "political" } } [4]=> array(3) { ["long_name"]=> string(5) "Spain" ["short_name"]=> string(2) "ES" ["types"]=> array(2) { [0]=> string(7) "country" [1]=> string(9) "political" } } } ["formatted_address"]=> string(13) "Madrid, Spain" ["geometry"]=> array(4) { ["bounds"]=> array(2) { ["northeast"]=> array(2) { ["lat"]=> float(40.5635903) ["lng"]=> float(-3.5249115) } ["southwest"]=> array(2) { ["lat"]=> float(40.3120639) ["lng"]=> float(-3.8341618) } } ["location"]=> array(2) { ["lat"]=> float(40.4167754) ["lng"]=> float(-3.7037902) } ["location_type"]=> string(11) "APPROXIMATE" ["viewport"]=> array(2) { ["northeast"]=> array(2) { ["lat"]=> float(40.5635903) ["lng"]=> float(-3.5249115) } ["southwest"]=> array(2) { ["lat"]=> float(40.3120639) ["lng"]=> float(-3.8341618) } } } ["types"]=> array(2) { [0]=> string(8) "locality" [1]=> string(9) "political" } } } ["status"]=> string(2) "OK" }
Si tienes problemas para entender la estructura del array... me dices
__________________
Salu2!
  #8 (permalink)  
Antiguo 26/05/2014, 09:38
Avatar de Benderzuelo  
Fecha de Ingreso: mayo-2013
Ubicación: España
Mensajes: 223
Antigüedad: 10 años, 10 meses
Puntos: 5
Respuesta: Como cojo los datos de esta URL???

Pues no se por qué, algo harémal pero a mi me devuelve esto....

Código HTML:
Ver original
  1. <br />
  2. <b>Warning</b>:  file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?address=madrid&amp;sensor=true) [<a href='function.file-get-contents'>function.file-get-contents</a>]: failed to open stream: No such file or directory in <b>/home/seravo/domains/manomanitas.es/public_html/portal/js/actions/latLng.php</b> on line <b>4</b><br />
  #9 (permalink)  
Antiguo 26/05/2014, 09:42
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Como cojo los datos de esta URL???

Bueno.... si te toco usar curl() despues de todo

Código PHP:
Ver original
  1. <?php
  2. $direccion = 'Madrid';
  3.  
  4. $url = ("http://maps.googleapis.com/maps/api/geocode/json?address=$direccion&sensor=true");  
  5. $ch = curl_init($url);
  6. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  7. $geo = curl_exec($ch);
  8. $array = (json_decode($geo,true));
  9.  
  10. var_dump($array);

Ahora...si.. tu servidor no deja hacer file_get_contents() de urls externas por un tema de una directiva del php.ini que afecta tambien a fopen() con sitios externos
__________________
Salu2!
  #10 (permalink)  
Antiguo 26/05/2014, 09:47
Avatar de Benderzuelo  
Fecha de Ingreso: mayo-2013
Ubicación: España
Mensajes: 223
Antigüedad: 10 años, 10 meses
Puntos: 5
Respuesta: Como cojo los datos de esta URL???

Me sigue fallando :(

<br />
<b>Warning</b>: file_get_contents(http://maps.googleapis.com/maps/api/...mp;sensor=true) [<a href='function.file-get-contents'>function.file-get-contents</a>]: failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request

in <b>js/actions/latLng.php</b> on line <b>4</b><br />
NULL
  #11 (permalink)  
Antiguo 26/05/2014, 09:47
 
Fecha de Ingreso: agosto-2011
Ubicación: Santo Domingo
Mensajes: 487
Antigüedad: 12 años, 8 meses
Puntos: 31
Respuesta: Como cojo los datos de esta URL???

Disculpen si parece inoportuno no comentario pero veo que en el código PHP tiene $_GET['direccion']

No debiera ser 'address'?
__________________
El talento se educa en la KARMA y el carácter en la tempestad.
Gabriel De Los Santos
  #12 (permalink)  
Antiguo 26/05/2014, 09:56
Avatar de Benderzuelo  
Fecha de Ingreso: mayo-2013
Ubicación: España
Mensajes: 223
Antigüedad: 10 años, 10 meses
Puntos: 5
Respuesta: Como cojo los datos de esta URL???

Encontré esto en internet y funciona
$direccion = $_GET['direccion'];

$resultado = json_decode(file_get_contents(sprintf("https://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=%s", urlencode($direccion))));

$estado = $resultado->status;

if ($estado == "OK"){
$lat = $resultado->results[0]->geometry->location->lat;
$long = $resultado->results[0]->geometry->location->lng;
echo "{$lat}, {$long}";
}else{
echo 'KO';
}
  #13 (permalink)  
Antiguo 26/05/2014, 10:00
 
Fecha de Ingreso: agosto-2011
Ubicación: Santo Domingo
Mensajes: 487
Antigüedad: 12 años, 8 meses
Puntos: 31
Respuesta: Como cojo los datos de esta URL???

Si entiendo que funcione, pero en tu URL no esta definido la variable dirección al menos no la veo.
__________________
El talento se educa en la KARMA y el carácter en la tempestad.
Gabriel De Los Santos
  #14 (permalink)  
Antiguo 26/05/2014, 10:39
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Como cojo los datos de esta URL???

@Benderzuelo: amigo no le aconsejo el copy and paste ... Ud sabe por que le estaba fallando ?

Logicamente que si Ud ingresa "Palma de Mallorca" o "Buenos Aires" etc... hay espacios u otros caracteres no definidos una (variable de una) URL entonces va a tener problemas y necesita hacer unos reemplazos, que es lo que hace urlencode()

Sin embargo.. estoy seguro que el ejemplo que le deje.. con 'Madrid' debio funcionarle y Ud solo se limito a decir "que no" y no el porque o si habia cambiado algo en el ejemplo: en su caso uso $_GET con algo con espacios, ñ ..etc

Cita:
Iniciado por Benderzuelo Ver Mensaje
Encontré esto en internet y funciona
$direccion = $_GET['direccion'];

$resultado = json_decode(file_get_contents(sprintf("https://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=%s", urlencode($direccion))));

$estado = $resultado->status;

if ($estado == "OK"){
$lat = $resultado->results[0]->geometry->location->lat;
$long = $resultado->results[0]->geometry->location->lng;
echo "{$lat}, {$long}";
}else{
echo 'KO';
}

----
Cita:
Iniciado por gldelossantos Ver Mensaje
Si entiendo que funcione, pero en tu URL no esta definido la variable dirección al menos no la veo.
El compañero @Benderzuelo recibe via formulario por ejemplo algo en $_GET asi que si recibe esa variable.
__________________
Salu2!
  #15 (permalink)  
Antiguo 26/05/2014, 11:30
Avatar de Benderzuelo  
Fecha de Ingreso: mayo-2013
Ubicación: España
Mensajes: 223
Antigüedad: 10 años, 10 meses
Puntos: 5
Respuesta: Como cojo los datos de esta URL???

No Italico76 no me limité a decir que no funciona, es mas le metí madrid y me devuelve ese fallo, si vuelves a leer todos los posts veras que en uno de ellos pongo que algo haré mal yo, nunca critiqué tu código, por tanto si te has sentido ofendido a sido por cuenta tuya.
  #16 (permalink)  
Antiguo 26/05/2014, 11:40
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Como cojo los datos de esta URL???

No hay ofensa compañero @Benderzuel pero trate de saber porque le fallo antes para aprender de esa falla

... y de paso me la comparte que quiero saber
__________________
Salu2!
  #17 (permalink)  
Antiguo 26/05/2014, 11:45
Avatar de Benderzuelo  
Fecha de Ingreso: mayo-2013
Ubicación: España
Mensajes: 223
Antigüedad: 10 años, 10 meses
Puntos: 5
Respuesta: Como cojo los datos de esta URL???

Pues no lo sé, probé todo, debe ser o bien algo del server o bién que estoy recogiendo mal el resultado con jquery.

Gracias de todos modos por tu ayuda


Etiquetas: Ninguno
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 09:35.