首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSON解码不显示结果

JSON解码不显示结果
EN

Stack Overflow用户
提问于 2016-05-14 05:29:32
回答 2查看 69关注 0票数 0

我有一段非常简单的代码来解码json结果:

代码

代码语言:javascript
复制
        $returnSK = returnSeoKicksLinks($s[0]);
        echo "SeoKicks: " . $returnSK;
        $seoKicks = json_decode($returnSK, true);           
        if (is_array($seoKicks) || is_object($seoKicks))
        {
            foreach ($seoKicks as $key => $val2) 
            {
                 $backlinks2 = $val2['UrlFrom'];
                 echo $backlinks2;
                 // backlink query and insertion
                 //$b = $c->query("INSERT INTO `backlinks` (`backlink_id`,`backlink_url`,`backlink_mother_url`,`backlink_date`,`backlink_from`) VALUES ('','".$backlinks2."','".$s[0]."','seokicks',NOW())");    
            }           
        }

JSON结果:

代码语言:javascript
复制
{
  "Results": [
    {
      "Links": [
        {
          "Anchor": "guaranteed payday loan",
          "nofollow": "1",
          "UrlTo": "http:\/\/www.site.co.uk\/"
        }
      ],
      "Index": 1,
      "IP": "67.139.134.215",
      "UrlFrom": "http:\/\/menomena.com\/?p=240",
      "DomainRank": "7"
    },
    {
      "Links": [
        {
          "nofollow": "0",
          "UrlTo": "http:\/\/www.site.co.uk\/",
          "Anchor": "Cash Till Payday Loan"
        }
      ],
      "DomainRank": "6",
      "IP": "67.222.22.156",
      "Index": 2,
      "UrlFrom": "http:\/\/www.aussi.org\/business\/financial-services\/loans\/"
    },
    {
      "DomainRank": "6",
      "UrlFrom": "http:\/\/www.loanranks.com\/improving-your-chances-of-receiving-payday-loans",
      "Index": 3,
      "IP": "173.254.28.69",
      "Links": [
        {
          "Anchor": "guaranteed payday loans",
          "nofollow": "0",
          "UrlTo": "http:\/\/www.site.co.uk\/"
        }
      ]
    }
  ],
  "Overview": {
    "domainpop": "29",
    "firstresultposition": 1,
    "totalresultsreturned": 3,
    "linkpop": "37",
    "netpop": "27",
    "ippop": "29"
  }
} 

我正在尝试获取"UrlFrom“值,但它是空白的,是不是我遗漏了什么?

EN

回答 2

Stack Overflow用户

发布于 2016-05-14 05:35:10

您需要告诉PHP查看"Results“数组,如下所示:

代码语言:javascript
复制
foreach ($seoKicks['Results'] as $key => $val2)

所以你的代码会变成:

代码语言:javascript
复制
    $seoKicks = json_decode($returnSK, true);           
    if (is_array($seoKicks) || is_object($seoKicks))
    {
        foreach ($seoKicks['Results'] as $key => $val2) 
        {
             $backlinks2 = $val2['UrlFrom'];
             echo $backlinks2;
             // backlink query and insertion
             //$b = $c->query("INSERT INTO `backlinks` (`backlink_id`,`backlink_url`,`backlink_mother_url`,`backlink_date`,`backlink_from`) VALUES ('','".$backlinks2."','".$s[0]."','seokicks',NOW())");    
        }           
    }

关于SQL注入的一些思考

在取消对查询部分的注释之前,请将查询更改为不将值连接到SQL中。为了避免SQL injection的风险,您应该改用prepared statements,将动态值绑定到它。

票数 0
EN

Stack Overflow用户

发布于 2016-05-14 05:57:48

如果没有代码的第一部分,就无法执行测试来找出问题出在哪里。但是,使用下面的代码,我可以打印UrlFrom字段的值(在POST请求中传递JSON ):

代码语言:javascript
复制
$jsonPost = file_get_contents('php://input');
$decodedJson = json_decode($jsonPost);
foreach($decodedJson->Results as $key => $value) {
  var_dump($value->UrlFrom);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37219615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档