我想读取进入安装了足够 PHP 以运行 WordPress 的服务器的 JSON 数据。我可以创建新的 .php 文件,但我没有管理员权限来添加任何尚不存在的库。
在这种情况下,从 http 请求中获取和解析 JSON 数据的最简单方法是什么?
谢谢大家的指点,但我正在寻找的答案要简单得多。必要的两行代码原来是:
$json_data = file_get_contents("php://input");
$json_data = json_decode($json_data, true);
第一行:获取命中页面的 json 数据。第二行:将其解析为适当的哈希。
如果您在 WordPress 的上下文中执行此操作,则应使用内置的 HTTP 辅助函数 ( http://codex.wordpress.org/HTTP_API )。它们比 curl 更简单。例子:
$response = wp_remote_get( $url );
if( is_wp_error( $response ) ) {
$error_message = $response->get_error_message();
echo "Something went wrong: $error_message";
} else {
echo 'Response:<pre>';
print_r( $response );
echo '</pre>';
}
以上将返回如下内容:
Array
(
[headers] => Array
(
[date] => Thu, 30 Sep 2010 15:16:36 GMT
[server] => Apache
[x-powered-by] => PHP/5.3.3
[x-server] => 10.90.6.243
[expires] => Thu, 30 Sep 2010 03:16:36 GMT
[cache-control] => Array
(
[0] => no-store, no-cache, must-revalidate
[1] => post-check=0, pre-check=0
)
[vary] => Accept-Encoding
[content-length] => 1641
[connection] => close
[content-type] => application/php
)
[body] => {"a":1,"b":2,"c":3,"d":4,"e":5}
[response] => Array
(
[code] => 200
[message] => OK
)
[cookies] => Array
(
)
)
然后可以使用 json_decode() 将 json 改成数组:http ://www.php.net/manual/en/function.json-decode.php
使用 cURL 和 json_decode,您可以这样做。如果您正在运行 Wordpress,那么这些都是可用的。
$session = curl_init('http://domain.com/'); // HTTP URL to the json resource you're requesting
curl_setopt($session, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
$json = json_decode(curl_exec($session));
curl_close($session);
echo $json;