根据URL的末尾使用simple_html_dom获取特定URL

时间:2013-02-13 02:32:27

标签: php html simple-html-dom

我需要根据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是我想要抓住的那个。该表继续提供更多链接等,但这与我想要的无关。

3 个答案:

答案 0 :(得分:1)

对于href以1结尾的第一个a:

$dom->find('a[href$="1"]', 0);

答案 1 :(得分: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
?>

答案 2 :(得分:0)

假设您的html位于名为“tables.html”的文件中,这将有效。它读取文件,找到所有'a'链接,将它们放入一个数组中,第一个($ anchors [0])就是你想要的那个。然后你用$ anchors [0] - &gt; href。

从中获得href
$html = new simple_html_dom(); 

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

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

echo $anchors[0]->href;