问题标签 [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.

0 投票
2 回答
232 浏览

php - 具有最大行长功能的 PHP 解析器打印机

我想知道它是否存在用于 php-parser 的漂亮打印机,它能够强制执行所需的最大行长度?

(对于一些基本情况(数组元素列表、函数参数列表),实现起来似乎相当简单,但它开始对变量表达式等感到困惑。)

0 投票
4 回答
226 浏览

php - 解析 JSON 提要

我在包含以下数据的 URL 中有一个 json 提要。

我需要得到它并彻底解析它 php。但它使用以下代码给出了无效的 foreach 错误。任何人都可以帮助我如何正确显示。

0 投票
1 回答
267 浏览

php - PHP DOM 解析器破坏页面,无法加载页面内容

我创建了一个 php 解析器,它必须在 span 标签中提取价格,但是当我回显 $html 以便我可以看到页面如何加载时,它向我显示了一个没有内容的损坏页面。相反,只有页眉和页脚加载,而不是内容。内容似乎是由 JavaScript 从外部加载的,我的问题是如何使用 Dom 加载 html 页面以便 JavaScript 也加载?我需要让整个内容加载,以便我可以获得 div 和 span。这是我的代码:

0 投票
1 回答
203 浏览

laravel - Laravel 4 使用 nikic phpparser:发送电子邮件时内存不足

刚刚了解到 Laravel 在内部使用 nikic phpparser。

我修改了我的代码以在其中一种情况下发送电子邮件,它开始死机。
PHP日志显示了这一点:

[2015 年 10 月 3 日星期六 21:18:23] [错误] [客户端 xx.xx.xx.xx] PHP 致命错误:/home/yyyy/public_html/ 中允许的内存大小为 33554432 字节已用尽(尝试分配 1048576 字节) vendor/nikic/php-parser/lib/PHPParser/NodeTraverser.php 在第 66 行,引用者:http: //yyyy.com/home

我暂时增加了内存来解决这个问题。
但是,我想摆脱创可贴。
我看到 NodeTraverser 函数正在执行克隆,这会导致问题:

这就是我发送电子邮件的方式。这与其他任何地方没有什么不同,因此我怀疑这会导致问题:

关于如何解决这个问题的任何想法?

0 投票
1 回答
483 浏览

php - Laravel 使用 PHPParser(nikic) 的目的是什么?

面临解析器内存不足的问题 -

  • /nikic/php-parser/lib/PHPParser/Node/Expr/Identical.php 在第 25 行

  • /nikic/php-parser/lib/PHPParser/Parser.php 在第 1044 行

当我也仅在一个场景中发送电子邮件时,就会发生这种情况。
我试图了解 Laravel 在这里试图做什么,所以我可以解决这个问题。

Laravel 4.0 版
PHPHarser 0.9版

0 投票
1 回答
56 浏览

php - 如何解析多个xml文件

我需要实现一个 PHP 文件来从一个目录中读取 x 个文件,并且每次更新我的数据库中的一个表。更新没问题,但是,我不是 php 中最好的 xml。所以,这是 xml 文件:

所以,我的目录中有 x 个文件,我需要阅读所有文件。当我阅读我想要的文件时:

-$array($teamname -----> $position ->$statval)
-$array2($playerstat ----> $position ----->$statval)

我怎样才能做到这一点?当第一个 xml 文件完成时,我如何解析下一个?

感谢所有 Matteo

0 投票
1 回答
84 浏览

php - 限制 PHP 中变量的回显以获取所需的字符

$responsevar 有一个名为的组件custom_test_name,如下所示:

这是小的 PHP 代码:

这将打印<class=com.tests.[</class>..check 的第一个字符[custom_test_name类似地回显["custom_test_name"][2]prints T[3]prints e...。但是,在这种情况下如何仅打印/回显细节?例如。呼应这个ad.no.check1.check2.check3并消除那个[Test_Name]。有没有办法我们可以指定范围/其他方法?

0 投票
2 回答
674 浏览

php - 使用 simple-html-dom 将 img 移动到父段落之前

凯我真的坚持这个:/ 到目前为止,如标题和 DOMDocument 中提到的那样尝试了 SimpleHTMLDom .. $html 将来自我的 Processwire 驱动页面中的 CKEditor,我制作了一个 textformatter 来自动对输出进行后处理。

所以这是测试数据

所以这是我的 SimpleHTMLDom 尝试

上面的 $html 中只有一个 img 并且一切都按预期工作,但是这两个(或更多)返回重复项。

  1. 问题,它改变了排序顺序,所以 130x100 的图像将是第一个。我知道我在预先设置,但我不知道如何更改它。试图将所有图像填充到一个变量中,以便它们保持有序,但是我不知道如何将它添加到段落中。

  2. 实际上更重要的问题是关于重复的,奇怪的是,它正确地添加了所有图像,但它只是删除了段落中的第一个 img 并且对于任何其他图像都是如此,所以使用 3 它将保留最后两个(正如我所说, 1 可以正常工作)

我究竟做错了什么?

这在一个单独的问题中可能会更好,但我想表明我也尝试过 DOMDocument 但无法让 insertBefore 工作(根本)我尝试了不同的变体(在下面的代码中未注释)

如果某些内容记录得不够好或被问到,请随时发表评论,我会尽力解释得更好:)

编辑: html(来自上面提到的所见即所得)有时会在段落的中间或结尾保存图像,可能包含单个或多个图像(未定义的数字),并且该 html 中会有多个段落

编辑:应该包括我希望输出的方式

所以这是输入

这应该是结果

很抱歉没有提到这些图像应该被包装在数字中,然后在一个容器中..单个图像不需要额外的容器,但这实际上并不重要..我用完整的代码进行了测试..在图中包装图像,添加figcaption 在适用的情况下并将多个图形包装在一个 div 中,所有内容都适用于只有单个图像的文章,然后我在另一篇文章中遇到了一些类似于上面测试数据的 html,导致提到的重复..所以我剥离了代码看看问题出在哪里没有运气..这就是为什么我只是在问题中添加了这个简单的代码,因为我认为一旦这个工作正常,另一个也可以工作;-)

希望现在更清楚?!

0 投票
2 回答
456 浏览

abstract-syntax-tree - 将 Hack 代码解析为抽象语法树

我希望将我的 Hack 代码分解为抽象语法树。请就可用的工具/库/github 存储库向我提供建议,这将帮助我将 Hack 代码解析为 AST。我找到了“h2tp”(对 Facebook 编写的 php 转译器的破解),但它不会将代码解析为 AST。我还尝试了这个项目,它可以满足我的要求,但是它不能识别许多操作员,并且需要大量的返工,这将花费很多时间。

0 投票
0 回答
231 浏览

php - 使用标记器解析自定义 DSL 中的条件

我正在尝试解析通过 PHP 中的 API 提供的“规则字符串”。

鉴于我有一系列项目,例如

我希望评估这个表达式

在这种情况下,它应该返回 true,因为 $items 数组同时包含 41 和 51 项。

我开始使用https://github.com/nette/tokenizer库创建一个标记器,目前让它将字符串解析为一个标记数组。

然而,这是我的才能耗尽的地方,我不确定如何处理令牌,以便我可以针对我的 $items 数组运行条件。

可能是我完全错误地处理了这个问题。