私は simplehtmldom を使用して、Web サイト内の特定の要素を見つけています。
私のコード
function strpos_arr($haystack) {
$needle = array('menu', 'nav');
if(!is_array($needle)) $needle = array($needle);
foreach($needle as $what) {
if(($pos = strpos($haystack, $what))!==false)
return true;
}
return false;
}
$first = true;
foreach($html->find('ul') as $ul){
if ( strpos_arr($ul->id) OR strpos_arr($ul->class) ) {
if ( $first )
{
foreach($ul->find('li a') as $li)
{
echo $li.'<br>';
}
$first = false;
}
}
}
?>
このコードは、li 要素の下の ul 要素内にネストされたリンクを含む、すべての li 要素内のすべてのリンクを表示します。ul サブの下にネストされたものではなく、li のメインの a 要素のみをエコーアウトする必要があります。
編集:
必要な行は「a href I need」としてマークされています
<ul id="parent">
<li>a href I need<li>
<li>a href I need<li>
<li>a href I need<li>
<li>a href I need<li>
<ul id="sub">
<li>a href I DON'T need<li>
<li>a href I DON'T need<li>
</ul>
<li>a href I need<li>
<li>a href I need<li>
</ul>