2

我想读取进入安装了足够 PHP 以运行 WordPress 的服务器的 JSON 数据。我可以创建新的 .php 文件,但我没有管理员权限来添加任何尚不存在的库。

在这种情况下,从 http 请求中获取和解析 JSON 数据的最简单方法是什么?

4

3 回答 3

5

谢谢大家的指点,但我正在寻找的答案要简单得多。必要的两行代码原来是:

$json_data = file_get_contents("php://input");
$json_data = json_decode($json_data, true);

第一行:获取命中页面的 json 数据。第二行:将其解析为适当的哈希。

于 2013-03-28T16:18:38.577 回答
4

如果您在 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

于 2013-03-28T01:28:11.307 回答
2

使用 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;
于 2013-03-28T00:03:27.027 回答