使用 file_get_contents 获取 json 数据
Get json data with 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¶ms={}
我的 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¶ms=%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&params=$params";
echo file_get_contents($url);
?>
但是return没什么,这里有什么问题吗??
为了安全起见,服务器可能 allow_url_fopen
设置为关闭(参见 http://php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen)
尝试使用 curl 来获取数据
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
echo $data;
另外,为了避免您在 URL 中传递的数据可能出现问题,请务必对每个变量调用 urlencode,以防任何变量包含特殊字符,例如 &
或 [=14] =].例如:
$sport = urlencode($_GET["sport"]);
我需要从这个 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¶ms={}
我的 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¶ms=%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&params=$params";
echo file_get_contents($url);
?>
但是return没什么,这里有什么问题吗??
为了安全起见,服务器可能 allow_url_fopen
设置为关闭(参见 http://php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen)
尝试使用 curl 来获取数据
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
echo $data;
另外,为了避免您在 URL 中传递的数据可能出现问题,请务必对每个变量调用 urlencode,以防任何变量包含特殊字符,例如 &
或 [=14] =].例如:
$sport = urlencode($_GET["sport"]);