php preg_match_all 获得第二个 select 框选项

php preg_match_all get second select box options

我正在从 file_get_contents 获得的网页 select 框上应用 preg_match_all,但问题是它只获得第一个 select 框,而不是能够获得第二个 select 框及其选项。我的密码是

 $html = file_get_contents("https://www.amazon.co.jp/-/en/dp/B09C1PM7K3?th=1");
 $quantityMatch  = preg_match_all( '@(<option value="([^"]+)">([^<]+)</option>)@', $html, $quantity);

    $result = array();
    $k = 0;
    foreach ($quantity[0] as $i => $value){
        $result[$quantity[2][$i]] = $quantity[3][$i];
        $k = $i;
    }
    $finalQty = $quantity[3][$k];
    // print_r($result);
    dd($finalQty);

它正在从此页面获取类别,但我需要第二个 select 框,它是网页上的库存数量。

您可以通过此link查看所选选项的数据。 如果您使用类似“ 的短语进行搜索,则未选中

<li ... data-dp-url="/dp/B09C1P6T71/ref=twister_B09GWCBGQ5?_encoding=UTF8&psc=1"

您可以获得数据-dp-url 用于未选择的选项并添加您的 link 等:https://www.amazon.co.jp/-/en/ 再次文件获取新内容 url 那是你的新期权股票:)

示例:您的新第二个选项 link:

https://www.amazon.co.jp/-/en/dp/B09C1Q11Z9/ref=twister_B09GWCBGQ5?_encoding=UTF8&psc=1

如果你不明白,我可以写示例代码post。

红色:未选择的选项 黑色:选择选项

例如第二个选项产品存货数量:

$html = file_get_contents("https://www.amazon.co.jp/-/en/dp/B09C1PM7K3?th=1");
    $qq = preg_match_all( '@(data-dp-url="([^<]+)" )@', $html, $option);
    $link = "https://www.amazon.co.jp/-/en".str_replace("&amp;", '&', explode('"', $option[0][1])[1]);
    $html_new_option = file_get_contents($link);
    $quantityMatch  = preg_match_all( '@(<option value="([^"]+)">([^<]+)</option>)@', $html_new_option, $quantity);

    $result = array();
    $k = 0;
    foreach ($quantity[0] as $i => $value){
        $result[$quantity[2][$i]] = $quantity[3][$i];
        $k = $i;
    }
    $finalQty = $quantity[3][$k];
    dd($finalQty);

=> $选项[0][WANT_OPTION_ORDER]