簡體   English   中英

使用PHP /條件過濾API結果的問題排查

[英]Trouble filtering API results with PHP/conditionals

首先,對於可能是一個非常綠色的問題,請提前道歉! 我只是想了解PHP的知識,而對API的支持卻不多。

我目前正在嘗試過濾一些使用Etsy API返回的列表結果。 我只想將它們限制為特定的類別或分類ID,但是我使用的任何PHP條件都似乎未返回任何結果。 到目前為止我嘗試過的一些方法:

<?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;

}

?>

我已經在這里嘗試了一段時間:

<?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,end_tsz:1463349619,original_creation_tsz:1452898657, last_modified_tsz:1452898849,價格:“ 10.00”,貨幣代碼:“ USD”,數量:15,標簽:[“彩虹”,“獨角獸”,“仙女”,“美人魚”,“紫色”,“藍色”,“綠色” ,“手刻字”,“抽象”,“刻字”,“手”,“水彩”],category_path:[“ Art”,“ Print”,“ Giclee”],category_path_ids:[68887312、68892154、69190377],URL :“” https://www.etsy.com/listing/264154010/swim-with-mermaids-print-hand-lettering?utm_source=funappyay&utm_medium=api&utm_campaign=api“,taxonomy_id:121,taxonomy_path:[[Art&Collectibles ], “印刷品”,“ Giclee”],},{列表ID:234448248,狀態:“活動”,用戶ID:30961143,類別ID:68887486,標題:“保持冷靜並擁抱我嬰兒毯子阿富汗鈎針編織圖案,由Peach.Unicorn”,creation_tsz :1452 898542,結尾:1463349342,原始創建:1332388408,修改過的ts:1452898542,價格:“ 1.99”,貨幣代碼:“ GBP”,數量:41,標簽:[[Baby],“ Blanket”,“ Crochet”,“ Crochet Pattern”, “毛毯圖案”,“保持鎮靜”,“吹針”,“嬰兒毯”,“立即下載”,“女嬰”,“男嬰”,“擁抱我”,“ dk毛線圖案”],category_path: “樣式”],category_path_ids:[68887486],網址:“ https://www.etsy.com/listing/234448248/keep-calm-and-hug-me-baby-blanket-afghan?utm_source=funappyay&utm_medium=api&utm_campaign= api “,taxonomy_id:729,taxonomy_path:[”工藝用品和工具“,”樣式和教程“],},

好吧,我知道了! 萬一將來有人在尋找答案,我的解決方案會有些混亂:

<?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;

}

?>

在理解為什么在$ eacheach循環之外設置$ taxo失敗的過程中,您仍然需要付出一些努力,因此仍然對任何見解表示贊賞。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM