Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取包含文件内容的json数据_Php_Json_File Get Contents - Fatal编程技术网

Php 获取包含文件内容的json数据

Php 获取包含文件内容的json数据,php,json,file-get-contents,Php,Json,File Get Contents,我需要从此url检索信息: http://example.com/ajax.php?sport=soccer&language_id=vn&block_id=page_home_1_block_home_matches_1&block_name=block_home_matches&callback_params={"date": "2016-01-14", "display": "all"}&action=updateContent&params

我需要从此url检索信息:

http://example.com/ajax.php?sport=soccer&language_id=vn&block_id=page_home_1_block_home_matches_1&block_name=block_home_matches&callback_params={"date": "2016-01-14", "display": "all"}&action=updateContent&params={}
我的url如下:

http://example.net/ajax.php?sport=soccer&language_id=vn&block_id=page_home_1_block_home_matches_1&block_name=block_home_matches&callback_params=%7B%22date%22%3A%20%222016-01-14%22%2C%20%22display%22%3A%20%22all%22%7D&action=updateContent&params=%7B%7D
下面是ajax.php:

<?php

$sport = $_GET["sport"];
$language_id = $_GET["language_id"];
$block_id = $_GET["block_id"];
$block_name = $_GET["block_name"];
$callback_params = $_GET["callback_params"];
$action = $_GET["action"];
$params = $_GET["params"];

$url = "http://example.com/ajax.php?sport=$sport&language_id=$language_id&block_id=$block_id&block_name=$block_name&callback_params=$callback_params&action=$action&amp;params=$params";

echo file_get_contents($url);

?>


但是如果不返回任何内容,这里有什么问题吗?

为了安全起见,服务器可能已将
allow\u url\u fopen
设置为Off(请参阅)

尝试使用curl来获取数据

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
echo $data;
另外,为了避免在URL中传递的数据可能出现问题,请确保在任何变量包含特殊字符(如
&
=
)的情况下对每个变量调用urlencode。例如:

$sport = urlencode($_GET["sport"]);

var_dump(file_get_contents($url))的结果是什么@CooPer:boolean False请检查allow_url_fopen,如果它是真的,您对url有问题,您应该打印它并检查问题所在,例如您的url中有
&
,您必须添加
&
。一步一步地测试它,不带get参数,用一个参数检查它,依此类推。刚刚编辑了我的代码,但它返回1:这是原始url:@Tran抱歉,我忘记了curl\u exec行-我更新了答案-现在再试