使用PHP迭代本地HTML文件

时间:2016-09-01 06:39:05

标签: php

在PHP中,我需要遍历本地HTML文件,以获取属于具有所选类的标签的标签的for属性的内部HTML和值,因此displayname和email的标签为以下示例。 HTML是通过直接文件访问而不是通过Web浏览器访问的。

<div id="custom_panel">
    <ul>
        <li>
            <label for="displayname" class="selected">Public display name</label>
            <input type="text" class="selected" id="displayname" name="displayname" maxlength="254" value=""/>
        </li>
        <li>
            <label for="email" class="selected">Email</label>
            <input type="text" class="selected" id="email" name="email" maxlength="254" value=""  />
        </li>
        <li>
            <label for="age">Age</label>
            <input type="text" id="age" name="age" maxlength="3" value=""  />
        </li>
    </ul>
</div>

编辑:

解决方案 - 我更新了标签以获得所选类,这简化了事情,并且意味着使用DOMDocument的建议很有效。

$dom=new DOMDocument;
$dom->loadHTMLFile( $filename );
$col=$dom->getElementsByTagName('label');

foreach( $col as $node ) {
    echo 'ID: ' . $node->getAttribute('for') . ' Class: ' . $node->getAttribute('class') . ' Value: ' . $node->nodeValue . '<br />';
}

2 个答案:

答案 0 :(得分:4)

使用DOMDocument加载和处理HTML文件的简单示例

$filename='c:/wwwroot/somepage.html';

$dom=new DOMDocument;
$dom->loadHTMLFile( $filename );

$col=$dom->getElementsByTagName('*');
foreach( $col as $node ) {
    echo $node->tagName, $node->nodeValue, '<br />';
}

答案 1 :(得分:0)

请查看PHP DOMDocument here