我正在访问提供json结果的搜索API,例如:Free Search API
我想只检索对象title
中的记录kwic
,url
和results
到我的代码中。但是对象title
中的url
和related
阻碍了它们。
我尝试过做一些功能:
foreach ($json->results as $item) {
if (isset($item->kwic)) {
$rss_item = array(
'title' => $item->title,
'kwic' => $item->kwic,
'url' => $item->url,
);
array_push($desArray, $item->kwic);
}
else {
return false;
}
array_push($rss_array, $rss_item);
for ($i = 0; $i < 50; $i++) {
echo '<a href="' . $rss_array[$i]['url'] . '">' . $rss_array[$i]['title'] . '</a><a href="' . $rss_array [$i]['url'] . '" target="_blank">' . '<img src="http://corrupteddevelopment.com/wp-content/uploads/2012/10/open-new-tab-window-icon.jpg" width="15px" height="15px"></a><br/>';//LINE 66
echo '<hr/>';
echo '<p>' . $rss_array [$i]['kwic'] . '</p></br>';
}
它给了我部分结果,部分结果:Notice: Undefined offset: 31 in C:\xampp\htdocs\MSP\SignIn\cariFree.php on line 66
。我写的时候:
if (isset($item->related)) {
return false}
它给了我完全空白的页面。 我错过了什么? 谢谢。
以下是完整代码的屏幕截图:mycode.php
答案 0 :(得分:-1)
我重写了一下你的代码,我认为这是你实际应该做的,但我不确定,因为我没有完整的代码并且不能真正理解你的问题是什么(除了糟糕的编码)。
<?php
//first off use arrays instead of objects:
$json = json_decode($data, true);
foreach ( $json['results'] as $item ) {
if ( isset($item['kwic']) ) {
//we can push $item into the rss_array directly
array_push($rss_array, $item); #I assume you want this here instead of outside the loop
}
//I removed the else since it seemed completly stupid
}
foreach ( $rss_array as $item ) {
echo '<a href="' . $item['url'] . '">' . $item['title'] . '</a><a href="' . $item['url'] . '" target="_blank">' . '<img src="http://corrupteddevelopment.com/wp-content/uploads/2012/10/open-new-tab-window-icon.jpg" width="15px" height="15px"></a><br/>';//LINE 66
echo '<hr/>';
echo '<p>' . $item['kwic'] . '</p></br>';
}