问题标签 [php-parser]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Markdown - PHP 解析器
你知道一些 markdownPHP
解析器,withcode highlight
等,比如GitHub
markdown 解析器或https://stackedit.io/editor吗?
如果它可以通过Composer
然后更好。
我试过了:
https://packagist.org/packages/michelf/php-markdown
https://packagist.org/packages/league/commonmark
https://packagist.org/packages/erusev/parsedown
但所有这些的结果几乎都是纯文本。
最好的结果属于michelf/php-markdown
如下图所示:
[编辑 1]
现在我几乎达到了我的目标。
我用了:
https://github.com/sindresorhus/github-markdown-css
现在我得到一个非常相似的结果,GitHub
但是代码没有根据对应的(在这种情况下:)得到highlighted
(用) ,如下图所示:colors
language
html
那么我现在的问题是:
为了像 GitHub 一样获得代码语法高亮,我需要做哪些额外的步骤?请检查以下 GitHub 的输出:
php - PHP:在旧版本中使用“yield”解析 php 文件的任何方法
我正在建立一个类来替换旧的在线类。我们在 php 5.3 中有旧项目。以及新的 php 5.6 和 7.0 项目。开发人员希望在新版本中使用新功能,例如“yield”,但该类也可能包含在旧项目中。当然,旧项目无法通过 yield 运行代码,但它甚至无法解析文件。那么我必须编写两个不同的文件吗?
我想用这个:
产出 $key => $value;
ps如果没有'$key',我可以简单地写:
产量($值);
这可以在 5.3 版中解析。
非常感谢。
php - PHP Simple HTML DOM - 方法查找检索空数组
现在我正在尝试编写一个 PhP 解析器,但我不知道为什么我的代码返回一个空数组。我正在使用 PHP 简单的 HTML DOM。我知道我的代码并不完美,但它仅用于测试。
我将不胜感激任何帮助
php - 如何避免 php 解析整个 php 文件并包含并使其仅解析将使用的内容?
我在某处读到 php 每次执行时都会解析整个 .php 文件。那里提出了一些解决方案(那不是 opcache),但是我丢失了网站并且找不到它。
现在我有一个巨大的php网站,里面有很多很长的函数,经常单独使用,并且要求执行速度快。
为了避免让 php 解析所有其他不会使用的函数,我正在考虑进行模块化设计,其中存储在独立 php 文件中的函数只有在实际使用时才会包含在内。但是我无法确认除非需要,否则 php 不会解析函数内部或条件语句内部的包含。php 会解析这些包含吗?
例子:
在此示例中,如果我请求 a,我希望 php 仅解析 func_a,如果我请求 b,则仅解析 func_b,等等。实际上有不止 3 个函数,每个函数都是一个很长的算法,还有很长的字符串和数组。
作为包含的替代方案,我正在考虑制作独立的 php 文件并执行它们并仅在需要时使用 shell_exec 检索它们的输出。但这会带来其他复杂性,例如格式化参数(我不知道如何将带有特殊字符或 JSON 的非常长的字符串作为 shell 中的参数传递)并调用函数以在壳。这些复杂性会让它比让 php 解析整个文件更慢吗?
我知道 opcache 功能。即使每次都测试所有功能的所有操作是否足够?
是否有其他方法可以使 PHP 网站模块化,而不是每次都让 php 解析整个 php 文件?
谢谢你。
php - 带有 PHP 解析器的 PSR-2 PrettyPrinter
我正在使用nikic/PHP-Parser来解析/操作/打印 PHP 代码。但是没有提供特定的 PrettyPrinters,默认值会在某些点上破坏结果。例子:
预期的
实际的
我的问题:我在哪里可以找到标准 PrettyPrinter 类的基本 PSR-2 扩展来解决这些(和其他)问题?
我需要将它集成到我的脚本中,所以不需要像提到的https://github.com/FriendsOfPHP/PHP-CS-Fixer这样的 CLI 。
我确实找到了一个看起来不错的开始,但它有点旧,我不能轻易让那个运行。
php - 获取节点偏移量和长度
我正在使用包nikic/php-parser来解析用户提供的 PHP 文件。该文件将包含一些 PHP 函数,我需要知道哪些函数以及定义的确切偏移量和长度。
例如:
在这种情况下,我有一个名为x
的函数,偏移量(function
开始的地方)是6,并且长度一直计算到}
,在这种情况下是16。
所以我在 parser:startFilePos
和上启用了两个属性endFilePos
,但由于某种原因,它不会给我这些信息。
php - 如何比较不包括受保护属性的两个节点?(PHP 解析器)
我在我的项目中使用PHP-Parser 。我想使用PHPUnit
'sassertEquals
函数比较两个节点。
尽管节点相同,但它给出了错误的结果。原因是,其中一个节点包含两个受保护的属性,而另一个不包含:
是否可以比较不包括受保护属性的节点?
示例数据
第一个对象:
第二个对象:
注意PhpParser\Node\Scalar\String_
对象["value"]=> string(3) "FOO"
php - 通过php在下拉列表中显示xml文件级联内容
我有一个本地 xml 文件,我正在尝试使用以下代码在网页上显示该文件。
我得到的只是一个空白页。
在此处输入代码
一旦显示工作,我想要一个下拉列表,我将在其中选择 xml 元素/实体,它将显示该元素/实体的值或子项。
有人可以帮忙吗?
我提到:使用 SimpleXML 从 XML 中获取多个项目并使用php 中的 xml 文件中的值填充下拉列表
两者都分别给了我一个空白页。
php - 使用 nikic/PHP-Parser 将节点插入 PHP AST
我正在使用https://github.com/nikic/PHP-Parser。想要在 AST 中插入节点时,什么是好的策略?使用遍历器,我可以使用NodeTraverser
类轻松更新和删除节点。但是我怎样才能“插入之前”或“插入之后”一个节点?
示例:当遍历 AST 命名空间时,我想Use
在第一个非使用语句之前插入一个语句。
我开始使用beforeTraverse
并afterTraverse
查找数组的索引,但它似乎过于复杂。有任何想法吗?
php - 如何使用 PHP-Parser 获取全局变量名称并进行更改
我想使用PHP-Parser库来获取全局方法 ( _POST, _GET, _REQUEST
) 以获取 PHP 中的值。我正在使用PHP-Parser,我想检查节点名称是否等于(_POST, _GET, _REQUEST
)。我还是 PHP-Parser 的初学者,不知道如何获取这些全局变量。例如,如果我有以下源代码:
代码:
到目前为止,我使用的 PHP 解析器如下所示:
实现上述 PHP-Parser AST 后,我得到以下结果:
- 如何检测测试代码是否有
_POST, _GET, REQUEST
?例如:
- 如何更改
$_POST[firstname]
按hello world! or any text
值?例如:之前
后
谢谢你的帮助