2015-07-08 2 views
0

я использую CodeIgniter и мой код выглядит следующим образом:PHP локон запрос не возвращает ничего

Контроллер:

$json_string = 'http://maps.googleapis.com/maps/api/directions/json?origin=' . $user_addr . '&destination=' . $vendor_city .'&mode=Montreal'; 

    $json = $this->curl_get_contents($json_string); 


    $obj = json_decode($json, true); 
    $this->load->view('get_direction_pg',$obj); 

public function curl_get_contents($url) 
{ 
    $ch = curl_init($url); 

    if ($ch == FALSE) { 
     return array('error' =>"failed"); 
    }else{ 
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

     curl_setopt($ch, CURLOPT_VERBOSE, 0); 

     $result = curl_exec($ch); 
     return $result; 
    } 


} 

и, если я доступ var_dump($routes);

он говорит,

неопределенные переменные маршруты.

+0

Вы пытались использовать 'curl_setopt ($ ch, CURLOPT_FOLLOWLOCATION, true);' – tofiffe

+1

Попробуйте эхогенерировать сгенерированные URL. А затем скопируйте URL-адрес и откройте в новой вкладке браузера. проверьте, получаете ли вы какой-либо результат или нет. В результате вы получаете какой-либо результат, тогда есть проблема в вызове curl. Вы можете воспользоваться помощью [curl_error] (http : //php.net/manual/en/function.curl-error.php). –

+1

Почему 'var_dump ($ routes); '? Очевидно, что '$ routes' не будет определен, вы не определяете его в коде, так откуда он должен исходить? – arkascha

ответ

0

попробовать использовать это: то есть кодирующая ВАР - перед вводом в URL

$json_string = 'http://maps.googleapis.com/maps/api/directions/json?origin=' . urlencode($user_addr) . '&destination=' . urlencode($vendor_city) .'&mode=Montreal'; 

параметры должны быть закодированы для URL, в противном случае оно является недействительным, и, следовательно, вы получаете эту ошибку

0

Попробуйте это:

public function curl_get_contents($url) 
{ 
    $ch = curl_init($url); 

    if ($ch == FALSE) { 
     return array('error' =>"failed"); 
    } 
    else 
    { 
     curl_setopt($ch, CURLOPT_URL, $url); 
     curl_setopt($ch, CURLOPT_HEADER,0); 
     curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]); 
     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     curl_setopt($ch, CURLOPT_VERBOSE, 0); 

     $result = curl_exec($ch); 
     return $result; 
    } 
} 
+0

Теперь я получаю этот вывод: Ошибка 400 (Плохой запрос). Ваш клиент выдал неверный или незаконный запрос. Это все, что мы знаем. что я делаю сейчас? –

Смежные вопросы