首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PHP/条件词对API结果进行故障筛选

使用PHP/条件词对API结果进行故障筛选
EN

Stack Overflow用户
提问于 2016-01-15 22:38:19
回答 1查看 248关注 0票数 0

首先,为可能是一个相当绿色的问题事先道歉!我只是掌握了PHP的诀窍,对API没有太多的支持。

目前,我正在尝试使用Etsy筛选返回的一些列表结果。我想将它们限制在特定的类别或分类ID上,但是我使用的PHP条件似乎没有返回任何结果。到目前为止,我尝试过的几件事:

代码语言:javascript
复制
<?php

define("API_KEY", XXX);

$url = "https://openapi.etsy.com/v2/listings/active?tags=unicorn,unicorns&keywords=unicorn,unicorns&includes=Images:1:0&api_key=" . API_KEY;

while (isset($url) && $url != '' && $next_page < 3) {

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$response_body=curl_exec($curl);
curl_close($curl);

$response = json_decode($response_body);

$taxo = $response->results->taxonomy_id;

if($taxo == 66) {

    foreach ($response->results as $listing) {
            echo "<li>"
            . '<a href="' . $listing->url . '" target="_blank"><img src="' . $listing->Images[0]->url_170x135 . '" alt=""></a>'
            . "<p>" . $listing->title . "</p>"
            . "<p>~*~" . $listing->price . " " . $listing->currency_code . "~*~</p>" .
            $listing->taxonomy_id .
            "</li>";
}
} else {
    echo "NO RESULTS";
}

$next_page = $response->pagination->next_page;
$baseUrl = "https://openapi.etsy.com/v2/listings/active?tags=unicorn,unicorns&keywords=unicorn,unicorns&includes=Images:1:0&api_key=" . API_KEY . "&page=";
$url = $baseUrl . $next_page;

}

?>

我已经尝试过了,而且在这里:

代码语言:javascript
复制
<?php

define("API_KEY", XXX);

$url = "https://openapi.etsy.com/v2/listings/active?tags=unicorn,unicorns&keywords=unicorn,unicorns&includes=Images:1:0&api_key=" . API_KEY;

if(isset($url) && $url != '' && $next_page < 3 && $taxo == 66) {

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$response_body=curl_exec($curl);
curl_close($curl);

$response = json_decode($response_body);

$taxo = $response->results->taxonomy_id;

foreach ($response->results as $listing) {
    echo "<li>"
    . '<a href="' . $listing->url . '" target="_blank"><img src="' . $listing->Images[0]->url_170x135 . '" alt=""></a>'
    . "<p>" . $listing->title . "</p>"
    . "<p>~*~" . $listing->price . " " . $listing->currency_code . "~*~</p>" .
    $listing->taxonomy_id .
    "</li>";
}

$next_page = $response->pagination->next_page;
$baseUrl = "https://openapi.etsy.com/v2/listings/active?tags=unicorn,unicorns&keywords=unicorn,unicorns&includes=Images:1:0&api_key=" . API_KEY . "&page=";
$url = $baseUrl . $next_page;

var_dump($url);

}

else {
echo "NO RESULTS";
}

?>

我觉得我错过了一些显而易见的东西,但我被困住了。对我做错了什么有什么指导吗?

使用上述代码中包含的调用返回清单的示例响应:

结果:

[ listing_id: 264154010,状态:“活动”,user_id: 22167794,category_id: 69190377,标题:“与美人鱼一起游泳打印,手写,水彩,蓝色紫色”,creation_tsz: 1452898819,ending_tsz: 1463349619,original_creation_tsz: 1452898657,last_modified_tsz: 1452898849,价格:"10.00",currency_code:“美元",数量: 15,标签:
”彩虹“、”独角兽“、”仙女“、”美人鱼“、”紫色“、”蓝色“、”绿色“、”手写“、”抽象“、”书写“、”手“,“水彩”,category_path:
"Art","Print","Giclee“,category_path_ids:
68887312,68892154,69190377,url:"campaign=api",taxonomy_id: 121,taxonomy_path:
“艺术与收藏品”,“打印”,"Giclee“,},
{ listing_id: 234448248,state:"active",user_id: 30961143,category_id: 68887486,标题:”Peach.Unicorn保持冷静,拥抱我婴儿毯阿富汗钩针图案“,creation_tsz: 1452898542,ending_tsz: 1463349342,original_creation_tsz: 1432388408,last_modified_tsz: 1452898542,价格:"1.99",currency_code:“英镑”,数量: 41,标签:
“婴儿”,“毯子”,“钩针”,“钩针图案”,“毛毯图案”、“保持冷静”、“泡泡针”、“婴儿毯”、“即时下载”、“宝贝女孩”、“男婴”、“拥抱我”、"dk纱线图案“、category_path:
”花纹“,category_path_ids:
68887486,url:"campaign=api",taxonomy_id: 729,taxonomy_path:
“工艺用品与工具”,“模式与教程”,},

EN

回答 1

Stack Overflow用户

发布于 2016-01-20 00:49:39

好吧,我想出来了!如果其他人在寻找未来的答案,我有点混乱的解决方案:

代码语言:javascript
复制
<?php

define("API_KEY", XXX);

$url = "https://openapi.etsy.com/v2/listings/active?tags=unicorn,unicorns&keywords=unicorn,unicorns&includes=Images:1:0&api_key=" . API_KEY;

while(isset($url) && $url != '') {

    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $response_body=curl_exec($curl);
    curl_close($curl);

    $response = json_decode($response_body);

        foreach ($response->results as $listing) {

                $taxo = $listing->taxonomy_id;

                if($taxo == 41 || $taxo == 873){
                    echo '<li><a href="'
                    . $listing->url .
                    '" target="_blank"><img src="'
                    . $listing->Images[0]->url_170x135 .
                    '" alt=""></a>'
                    . "<p>" . $listing->title . "</p>"
                    . "<p>~*~" . $listing->price . " " . $listing->currency_code . "~*~</p>" .
                    $taxo . '</li>';
                }
        }

    $next_page = $response->pagination->next_page;
    $baseUrl = "https://openapi.etsy.com/v2/listings/active?tags=unicorn,unicorns&keywords=unicorn,unicorns&includes=Images:1:0&api_key=" . API_KEY . "&page=";
    $url = $baseUrl . $next_page;

}

?>

在理解为什么在foreach循环之外设置$taxo是不成功的,所以任何洞察力都是值得赞赏的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34821049

复制
相关文章

相似问题

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