我有一段非常简单的代码来解码json结果:
代码
$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结果:
{
"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“值,但它是空白的,是不是我遗漏了什么?
发布于 2016-05-14 05:35:10
您需要告诉PHP查看"Results“数组,如下所示:
foreach ($seoKicks['Results'] as $key => $val2)所以你的代码会变成:
$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,将动态值绑定到它。
发布于 2016-05-14 05:57:48
如果没有代码的第一部分,就无法执行测试来找出问题出在哪里。但是,使用下面的代码,我可以打印UrlFrom字段的值(在POST请求中传递JSON ):
$jsonPost = file_get_contents('php://input');
$decodedJson = json_decode($jsonPost);
foreach($decodedJson->Results as $key => $value) {
var_dump($value->UrlFrom);
}https://stackoverflow.com/questions/37219615
复制相似问题