1

URLの末尾に基づいてsimple_html_domを使用してURLを取得する必要があります。URLには、一意にするための特定のクラスはありません。唯一のユニークな点は、特定の数字のセットで終わることです。その特定のURLを取得して印刷するための適切な構文を理解できません。

何か助けはありますか?

例:

<table class="findList">
<tr class="findResult odd"> <td class="primary_photo"> <a href="/title/tt0080487/?ref_=fn_al_tt_1" ><img src="http://ia.media-imdb.com/images/M/MV5BNzk2OTE2NjYxNF5BMl5BanBnXkFtZTYwMjYwNDQ5._V1_SY44_CR0,0,32,44_.jpg" height="44" width="32" /></a> </td>

これが表の先頭のコードです。その最初のhrefは私がつかみたいものです。表にはさらに多くのリンクなどが続きますが、それは私が望むものとは関係ありません。

4

3 に答える 3

1

1で終わるhrefを持つ最初のaの場合。

$dom->find('a[href$="1"]', 0);
于 2013-02-15T09:00:23.943 に答える
0

DOMdocumentを使用するだけです

<?php 
$html = '
<table class="findList">
<tr class="findResult odd"> 
    <td class="primary_photo"> 
        <a href="/title/tt0080487/?ref_=fn_al_tt_1" ><img src="http://ia.media-imdb.com/images/M/MV5BNzk2OTE2NjYxNF5BMl5BanBnXkFtZTYwMjYwNDQ5._V1_SY44_CR0,0,32,44_.jpg" height="44" width="32" /></a> 
    </td>
';


$dom = new DOMDocument();
@$dom->loadHTML($html);
foreach($dom->getElementsByTagName('td') as $td) {
    if($td->getAttribute('class') == 'primary_photo'){
        $a = $td->getElementsByTagName('a')->item(0)->getAttribute('href');
    }
}
echo $a; // title/tt0080487/?ref_=fn_al_tt_1



//Or if your looking to get the img tag
$dom = new DOMDocument();
@$dom->loadHTML($html);
foreach($dom->getElementsByTagName('td') as $td) {
    if($td->getAttribute('class') == 'primary_photo'){
        $a = $td->getElementsByTagName('img')->item(0)->getAttribute('src');
    }
}

echo $a; // http://ia.media-imdb.com/images/M/MV5BNzk2OTE2NjYxNF5BMl5BanBnXkFtZTYwMjYwNDQ5._V1_SY44_CR0,0,32,44_.jpg
?>
于 2013-02-13T22:29:13.437 に答える
0

「tables.html」というファイルにhtmlがあるとすると、これは機能します。ファイルを読み取り、すべての「a」リンクを見つけて配列に入れます。最初のリンク($ branchs [0])が必要なものです。次に、$ anchors[0]->hrefを使用してhrefを取得します。

$html = new simple_html_dom(); 

$html->load_file('tables.html');

$anchors = $html->find("a");

echo $anchors[0]->href;
于 2013-02-14T17:14:28.153 に答える