【问题标题】:How to parse out variables from a JSON var_dump in a Wordpress Plugin如何从 Wordpress 插件中的 JSON var_dump 解析变量
【发布时间】:2015-03-17 23:14:30
【问题描述】:

我正在尝试从我的 API 中提取 JSON 数据,并从每个键中获取数据以便在 HTML/CSS 中很好地显示。现在无法获取数据。

这是我的数据库对象:

[
    {
        "_id":"54bd5fbb646174009a450001",
        "productname":"Product 1",
        "overview":"Overview Title",
        "benefits":
            [
                "List item 1",
                "List item 2",
                "List item 3"
            ]
    }
]

我找到了this answer here,并且 var_dump 正在工作,它在页面上显示我的 db 对象。 这是我更新的 wordpress php 插件:

<?php
add_shortcode('mis', function($atts, $data) {

    $service_url = 'http://local.web.tt.com:8615/api/users';

    //  Initiate curl
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_URL,$service_url);
    $result=curl_exec($ch);
    curl_close($ch);

    // Will dump a beauty json :3
    // var_dump(json_decode($result, true));
    $data = (json_decode($result, true));
    var_dump($data);

    $data = add_shortcode (
        array(
            'name' => 'name',
            'overview' => 'overview',
            'benefits' => 'benefits'
        ), $data
    );

    extract($data);

    $content .='
        <style>li { margin-left: 20px; }</style>
        <h2>$name</h2>
        <p>$overview</p>
        <ul>
            <li>$data["benefits"][0]</li>
            <li>$data["benefits"][2]</li>
        </ul>';

    return $content;
 });

但是我无法获取数据:

这是我的问题所在:

$data = (json_decode($result, true));
var_dump($data);

$data = add_shortcode (
    array(
        'name' => 'name',
        'overview' => 'overview',
        'benefits' => 'benefits'
    ), $data
);

extract($data);

$content .='
    <style>li { margin-left: 20px; }</style>
    <h2>$name</h2>
    <p>$overview</p>
    <ul>
        <li>$data["benefits"][0]</li>
        <li>$data["benefits"][1]</li>
    </ul>';

return $content;

如何将 var_dump 中的数据放入我的 $content 变量中的正确键/变量中?

【问题讨论】:

    标签: php json wordpress curl


    【解决方案1】:

    这部分代码很奇怪——它的目的是什么?

    $data = add_shortcode (
        array(
            'name' => 'name',
            'overview' => 'overview',
            'benefits' => 'benefits'
        ), $data
    );
    
    extract($data);
    

    要访问您的数据,您只需这样做

    $data[0]['productname']
    

    您的输出变量也包含在字符串中(在'' 中)。要将您的数据带入输出尝试:

    $data = (json_decode($result, true));
    var_dump($data);
    $product = $data[0];
    $content = '<style>li { margin-left: 20px; }</style>';
    $content .='<h2>' . $product['productname'] . '</h2>
        <p>' . $product['overview'] . '</p>
        <ul>
            <li>' . $product["benefits"][0] . '</li>
            <li>' . $product["benefits"][1] . '</li>
        </ul>';
    

    或者使用循环:

    $data = (json_decode($result, true));
    $content = '<style>li { margin-left: 20px; }</style>';
    foreach($data as $product) {
        $content .='<h2>' . $product['productname'] . '</h2>
        <p>' . $product['overview'] . '</p>
        <ul>';
        foreach($product['benefits'] as $benefit) {
            $content .= '<li>' . $benefit . '</li>';
        }
        $content .= '</ul>';
    
    }
    

    【讨论】:

    • 谢谢大声笑!这是我之前接触过的最多的 PHP 代码 :D
    猜你喜欢
    • 2015-11-13
    • 1970-01-01
    • 2016-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多