0

ここでのfind()は、simple_html_domライブラリの関数であり、ID/クラスが指定されたときにdomノード要素を返す必要があります。

$urlFetched->find("#".$id)$ idが「fk-list-MP3-Players-/-IPods」の場合、常に何かを見つけて返すことができません。他のIDとURL(snipped)には問題がないため、問題はスラッシュとsimple_html_domにあると推測しています。私は何をしますか?私のプログラムはほぼ完成していて、単純なhtmldomに依存しています。

ありがとう

コード:

$urlAndIds = array(
   array("http://www.flipkart.com/audio"  , array('fk-list-Home-Audio', htmlentities("fk-list-MP3-Players-/-IPods"), 'fk-list-Accessories'),array('ALL','AllBrands')) );

foreach($urlAndIds as $uAI) {
    $url = file_get_contents($uAI[0]) ;
    $urlFetched = str_get_html($url) ;

    if ($url == false){
         echo 'page '.$uAI[0] . " not found"  ."<br>" ."<br>";
    }   else {
        foreach ($uAI[1] as $id) {
            $idFound = $urlFetched->find("#".$id) ;
            if(!$idFound) {

                echo 'In page '.$uAI[0].' -id not found- '.$id  ."<br>";
            }
        }
    }


}
4

1 に答える 1

1

スラッシュはXPath式の一部として解釈されているため、。という名前の子要素を探してい-IPodsます。XPathの「quote」タイプの関数もありません。バックスラッシュの追加が機能するかどうかはわかりませんが、次のIDを持つ通常の属性セレクターを使用する方が簡単な場合があります。[@id='fk-list-MP3-Players-/-IPods']

于 2012-05-04T15:46:15.437 に答える