找到所需的标签并通过模板生成文件

时间:2014-07-21 21:23:56

标签: php arrays parsing

我在PHP中有很多文件。我需要创建一个脚本来查找一些标记(字符串)并使用它们生成另一个文件。

例如我有这个文件:

file1.php
<html lang="ru">
<html>
     <head>
          <title>**TAG nr 1**</title>
     </head>
     <body>
         <p class="description>**Tag nr 2**</p>
     </body>
</html>

脚本需要从标题获取字符串,而p需要class="description"

在此之后,我将使用此标记生成另一个文件,我有一个脚本。感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用php中的DOMDocument函数来获取结果。但要验证html输入是否有效并使用try catch捕获错误。

http://php.net/manual/en/class.domxpath.php

http://php.net/manual/en/class.domdocument.php

$html = '<html lang="ru">
            <head>
                <title>**TAG nr 1**</title>
            </head>
            <body>
                <p class="description">**Tag nr 2**</p>
            </body>
        </html>';

// prevent XXE injections 
libxml_disable_entity_loader(true);

// create new DOMDocument + load html
$doc = new DOMDocument();
$doc->loadHTML($html);

// create xpath
$xpath = new DOMXPath($doc);
$elements = $xpath->query("//p[contains(@class, 'description')]");

// list results
foreach ($elements as $node) {
    echo $node->nodeName . "\n";
    echo $node->textContent;
}

标题只需创建另一个xpath $xpath->query("//title");