简单的html dom可以找到PHP脚本(<!-?php ...?->)?

时间:2018-07-26 12:37:16

标签: php simple-html-dom

我在工作中使用了simple-html-dom。我想使用simple-html-dom获取所有PHP脚本(<?php ... ?>)表单文件。

如果我有一个文件(名称:text.php),其代码如下:

<html>
<head>
    <title>Title</title>
</head>
<body>
    <?php echo "This is test Text"; ?>
</body>
</html>

然后如何使用simple-html-dom在代码文件上方获取此PHP脚本<?php echo "This is test Text"; ?>形式。

$html = file_get_html('text.php');
foreach($html->find('<?php') as $element) {
    //Sonthing code ...
}

我不能这样使用,还有其他选择吗?

1 个答案:

答案 0 :(得分:0)

这是使用正则表达式的解决方案。请注意,对于解析HTML文件,通常不建议使用正则表达式。也就是说,在这种情况下可能可以。

这将匹配PHP代码块的每个实例,并允许您输出(或执行其他所需的操作)整个块(包括标记)或该块中包含的代码。请参阅preg_match_all()的文档。

<?php

$string = <<<'NOW'
<html>
<head>
    <title>Title</title>
    <?php echo "something else"; ?>
</head>
<body>
    <?php echo "This is test Text"; ?>
</body>
</html>
NOW;

preg_match_all("/\<\?php (.*) \?\>/", $string, $matches);

foreach($matches[0] as $index => $phpBlock)
{
    echo "Full block: " . $phpBlock;
    echo "\n\n";
    echo "Command: " . $matches[1][$index];
    echo "\n\n";
}

DEMO