首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否从URL获取文件内容?

是否从URL获取文件内容?
EN

Stack Overflow用户
提问于 2011-04-02 18:37:33
回答 5查看 266.6K关注 0票数 42

当我在浏览器中使用下面的网址时,它会提示我下载一个包含JSOn内容的文本文件。

https://chart.googleapis.com/chart?cht=p3&chs=250x100&chd=t:60,40&chl=Hello|World&chof=json

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

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

我该怎么做呢??

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-04-02 18:43:43

根据您的PHP配置,这可能很容易使用:

代码语言:javascript
复制
$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_url_fopen,您可以通过CURL读取数据,如下所示:

代码语言:javascript
复制
<?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_decode即可。

票数 82
EN

Stack Overflow用户

发布于 2013-03-30 01:47:39

1) 局部最简单方法

代码语言:javascript
复制
<?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
?> 

2)更好的方式是CURL

代码语言:javascript
复制
echo get_remote_data('http://example.com'); // GET request 
echo get_remote_data('http://example.com', "var2=something&var3=blabla" ); // POST request

它会自动处理FOLLOWLOCATION问题+远程urls:

src="./imageblabla.png"变成了:

src="http://example.com/path/imageblabla.png"

代码:https://github.com/tazotodua/useful-php-scripts/blob/master/get-remote-url-content-data.php

票数 23
EN

Stack Overflow用户

发布于 2013-02-18 03:24:46

别忘了:要获取HTTPS内容,应该在php.ini中启用OPENSSL扩展。(how to get contents of site use HTTPS)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5522636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档