使用php从json文件中获取单独的数据

时间:2017-02-27 00:34:24

标签: php json

我已经看到多种方法来计算文件下载链接的点击次数。 到目前为止可行的选项是使用json文件来存储数据;但是我有问题是能够单独提取数据,因为我需要根据当前页面显示数据,该页面具有唯一的ID。

这是我第一次使用json文件,到目前为止它已经很复杂了,我希望我能提供帮助。

HTML数据:

<a class="MxDownload" data-nameplugin="File-<?php the_ID(); ?>" href="<?php echo $file_down; ?>" title="<?php echo __('Download the ', 'cyberdocentes'); ?><?php the_title(); ?>" download><?php echo __('Download the ', 'cyberdocentes'); ?><?php the_title(); ?></a>

JSON数据文件(是外部文件):

{"File-262":{"countDownloads":4},"File-260":{"countDownloads":2}}

这是我的PHP代码:

<?php
global $down_id;
    $data = file_get_contents (''. get_stylesheet_directory_uri() .'/scripts/dataDownloads.json');
        $json = json_decode($data, true);
        $down_id = 'File-'. get_the_ID() .''; //This is unique ID for the URL

        foreach ($json as $key => $value) {
            if (!is_array($value)) {
                echo '<pre>' . $val . '</pre>';
            } else {
                foreach ($value as $key => $val) {
                    $count_down = $json[$down_id]['countDownloads'][0][$val];
                    echo "Descargas: ". $val ."<br />";
                }
            }
        }

?>

打印数据为:

Descargas: 4
Descargas: 2

我想只获取与当前链接ID相关的数据。 谢谢

1 个答案:

答案 0 :(得分:0)

在foreach循环中

你应该这样做

foreach($json as $key=>$value)
{
     // check whether your $key is similar to your fileid
     if($key==$down_id)
     {
        if(is_array($value))
        {
            // now your $val holds the download numbers
            foreach ($value as $key => $val) {
                    echo "Descargas: ". $val ."<br />";
                }
        }
     }
   }