从URL获取文件

时间:2011-03-14 01:54:35

标签: php

$vars='https://www.googleapis.com/latitude/v1/currentLocation?key=AIzaSyB2hw658V7RSzEYgwSHwYkaLm_505gqLhs';
$content = file_get_contents( $vars );

我正在使用此功能从网址中检索文件,但file_get_contents()无效。请建议我同样的工作功能。

3 个答案:

答案 0 :(得分:2)

file_get_contents仅在php.ini中将allow_url_fopen设置为“on”时才有效。

如果不是,你可以使用curl来获取网址的内容。

function getPage ($url) {  
     $ch = curl_init($url);
     curl_setopt($ch, CURLOPT_REFERER, $url);
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     $tmp = curl_exec ($ch);  
     curl_close ($ch);  

     return $tmp; 
 }

答案 1 :(得分:0)

你应该尝试curl或fsockopen。

  1. http://php.net/manual/en/book.curl.php
  2. http://ch2.php.net/manual/en/function.fsockopen.php
  3. 正如PHP文档所述,只有启用了fopen包装器时,URL才能用作file_get_contents()的文件名。

答案 2 :(得分:0)

您应该找出file_get_contents无法正常工作的原因。如果您使用的是早于4.3的PHP版本,则它不存在,并且可以使用其他更低级别的函数来实现。

如果对allow_url_fopen有限制(使用phpinfo()测试),请尝试ChrisR的答案,因为curl将绕过此限制。您也可以使用套接字函数。

如果有防火墙阻止传出连接,那你就不走运了。您需要致电您的托管服务并询问此事。

最后,您的服务器可能无法调用Google API。