我在工作中使用了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 ...
}
我不能这样使用,还有其他选择吗?
答案 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";
}