1

ある Web サイトから選択リストの値 (preg_match) を取得しようとしています。

ウェブサイト上の HTML:

<select name="country_id" id="country_id">
    <option value="vi">Vietnam</option>
    <option value="en">English</option>
    <option value="fr">France</option>
</select>

次のコードを試しましたが、成功しませんでした:

<?php

    $ch = curl_init();

    $url = "<url_of_website>"; 

    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    $result=curl_exec($ch);

    preg_match_all('/<select name="country_id" id="country_id">(.*)<\/select>/msu', $result, $matches);
    print_r($matches);

    curl_close ($ch);

?>

次のような結果を取得したい: vi, en, fr

誰でも私を助けてもらえますか?

ありがとうございました。

4

2 に答える 2

1

DOMDocument を使用できます。

$html = <<<LOD
<select name="country_id" id="country_id">
    <option value="vi">Vietnam</option>
    <option value="en">English</option>
    <option value="fr">France</option>
</select>
LOD;

$doc = new DOMDocument();
@$doc->loadHTML($html);
$optionNodes = $doc->getElementById('country_id')->getElementsByTagName('option');
foreach($optionNodes as $optionNode) {
    echo $optionNode->getAttribute('value') . '<br/>';
}
于 2013-06-06T15:13:56.700 に答える