加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

有没有好的PHP库可以将html / php文件转换为对象

发布时间:2020-12-13 16:23:37 所属栏目:PHP教程 来源:网络整理
导读:我看到很多可以解析html的php库.一个很好的例子是 QueryPath模仿Jquery Api. 但是,我正在寻找分析phtml.因此,不仅图书馆擅长分析DOM,而且还善于分析php processing instructions.例如Php文档对象模型或PDOM. 像这样的文件: ?phprequire 'NameFinder.php';$t
我看到很多可以解析html的php库.一个很好的例子是 QueryPath模仿Jquery Api.

但是,我正在寻找分析phtml.因此,不仅图书馆擅长分析DOM,而且还善于分析php processing instructions.例如Php文档对象模型或PDOM.

像这样的文件:

<?php
require 'NameFinder.php';
$title = 'Wave Hello';
$name = getName();
?><html>
<head>
<title><?php echo $title ?></title>
</head>
<body>
<h1>Hello <?php echo $name ?></h1>
<p>Blah Blah Blah</p>
</body>

我希望能够使用这种php库来阅读以下内容:

>由xpath或css选择器找到的DOM节点的内部html.

以及可能提供的东西:

>脚本中调用的php函数/方法列表
> php变量的值
>该页面所需的页面
>第5行之前使用的php变量列表
>在body元素的1st para之前使用的php变量列表

我可以花一些时间来一些东西,从phpdocumentor和Zend Framework Reflection这样的东西借用代码,使用内置的DOM Api,内省和字符串操作等.

但是,如果有某种* phtmlQuery“库可以做这些事情,那么它将很方便.

解决方法

要从文件中获取处理指令(和其他节点),可以使用 DOM和 XPath:

$dom = new DOMDocument;
$dom->loadHTMLFile('/path/to/your/file/or/url');
$xpath = new DOMXPath($dom);
foreach ($xpath->query('//processing-instruction()') as $pi) {
    echo $dom->saveHTML($pi),PHP_EOL;
}

这将输出:

<?php require 'NameFinder.php';
$title = 'Wave Hello';
$name = getName();
?>
<?php echo $title ?>
<?php echo $name ?>

这将适用于破碎的HTML.您可以在以下位置找到其他库

> How do you parse and process HTML/XML in PHP?

获得处理指令后,您可以通过本机Tokenizer运行它们或尝试其中一些:

> https://github.com/Andrewsville/PHP-Token-Reflection
> https://github.com/manuelpichler/staticReflection
> https://github.com/nikic/PHP-Parser

那些不会神奇地为您提供开箱即用的信息,因此您可能需要自己编写一些额外的行.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读