Php 从URL获取文件内容?

Php 从URL获取文件内容?,php,url,file-get-contents,Php,Url,File Get Contents,当我在浏览器中使用以下URL时,它会提示我下载包含JSOn内容的文本文件 (点击上面的URL查看下载的文件内容) 现在我想创建一个php页面。我希望当我调用这个php页面时,它应该调用上面的URL,从文件中获取内容(json格式),并将其显示在屏幕上 如何做到这一点呢?使用文件获取内容结合json\u解码和回音根据您的PHP配置,这可能是一个简单的用法: $jsonData = json_decode(file_get_contents('https://chart.googleapis.co

当我在浏览器中使用以下URL时,它会提示我下载包含JSOn内容的文本文件

(点击上面的URL查看下载的文件内容)

现在我想创建一个php页面。我希望当我调用这个php页面时,它应该调用上面的URL,从文件中获取内容(json格式),并将其显示在屏幕上


如何做到这一点呢?

使用
文件获取内容
结合
json\u解码
回音
根据您的PHP配置,这可能是一个简单的用法:

$jsonData = json_decode(file_get_contents('https://chart.googleapis.com/chart?cht=p3&chs=250x100&chd=t:60,40&chl=Hello|World&chof=json'));
但是,如果系统上未启用
allow\u url\u fopen
,则可以通过CURL读取数据,如下所示:

<?php
    $curlSession = curl_init();
    curl_setopt($curlSession, CURLOPT_URL, 'https://chart.googleapis.com/chart?cht=p3&chs=250x100&chd=t:60,40&chl=Hello|World&chof=json');
    curl_setopt($curlSession, CURLOPT_BINARYTRANSFER, true);
    curl_setopt($curlSession, CURLOPT_RETURNTRANSFER, true);

    $jsonData = json_decode(curl_exec($curlSession));
    curl_close($curlSession);
?>

顺便说一句,如果您只需要原始JSON数据,那么只需删除
JSON\u decode

$url = "https://chart.googleapis....";
$json = file_get_contents($url);
现在,如果您只想显示输出,您可以回显$json变量,也可以对其进行解码,并对其执行一些操作,如:

$data = json_decode($json);
var_dump($data);

不要忘记:要获取HTTPS内容,应该在php.ini中启用OPENSSL扩展。()

1)局部最简单方法

<?php
echo readfile("http://example.com/");   //needs "Allow_url_include" enabled
//OR
echo include("http://example.com/");    //needs "Allow_url_include" enabled
//OR
echo file_get_contents("http://example.com/");
//OR
echo stream_get_contents(fopen('http://example.com/', "rb")); //you may use "r" instead of "rb"  //needs "Allow_url_fopen" enabled
?> 
它自动处理FOLLOWLOCATION问题+远程URL:
src=“./imageblabla.png”
变成:
src=”http://example.com/path/imageblabla.png“


代码:

我正在使用file\u get\u contents来获取内容,但在回显时它不是JSON。它显示了一些特殊的字符。@Awan你能猜出这一点吗?我也看到了一些特殊的字符。谢谢投票:)编辑:我尝试了不使用json_decode,得到了一个完整的url,但是使用decode,什么都没有。解码的目的是什么?@Steven它将JSON字符串解码为PHP变量。@John_Parker非常感谢。我目前正在使用Google来呈现url的快照,但这并不理想,因为图像很小,但使用JSON decode作为PHP变量,这是一个可以拆分并获取页面标题和第一幅图像的数组吗?在PHP5.1.3中,BINARYTRANSFER选项没有效果:当使用CURLOPT_RETURNTRANSFER时,原始输出将始终返回。抱歉,如果replaceSources=True,该如何称呼它?
echo get_remote_data('http://example.com'); // GET request 
echo get_remote_data('http://example.com', "var2=something&var3=blabla" ); // POST request