如何编写一个 PHP 脚本来搜索 PHP 文件以获取特定信息?
Posted
技术标签:
【中文标题】如何编写一个 PHP 脚本来搜索 PHP 文件以获取特定信息?【英文标题】:How to write a PHP script that searches a PHP file for specific information? 【发布时间】:2021-08-31 17:07:31 【问题描述】:免责声明:这是我第一次涉足 php 和一般脚本 - 我的所有开发经验都在 ios(Swift 和 Objective-C)中。我已经开始做教程了。
我们有一个很大的.php
文件,我们称之为objects.php
,其中包含许多静态变量。
结构看起来像这样:
'ObjectDictionaryTom' => [
A_Class::NAME => "Tom"
]
'ObjectDictionaryDick' => [
A_Class::NAME => "Dick"
]
'ObjectDictionaryHarry' => [
A_Class::NAME => "Harry"
]
'ObjectDictionaryAlsoTom' => [
A_Class::NAME => "Tom"
]
结构不一致;有时,它甚至看起来像这样:
`Objects` => [
'ObjectDictionaryTom' => [
A_Class::NAME => "Tom"
],
'ObjectDictionaryDick' => [
A_Class::NAME => "Dick"
],
'ObjectDictionaryHarry' => [
A_Class::NAME => "Harry"
],
'ObjectDictionaryAlsoTom' => [
A_Class::NAME => "Tom"
]
]
如何阅读该文件并获取所有属于“Tom”的对象?也许将它们收集在 CSV 中?
我很乐意根据需要进行编辑或进一步解释!
【问题讨论】:
输出会是什么样子? @JNevill 为了清楚起见,我只是添加了一些代码:预期的输出是:ObjectDictionaryTom, ObjectDictionaryAlsoTom
。
使用array_filter,3v4l.org/SPJNb,重复嵌套对象
所以这不是有效的 PHP,是文件中的内容吗?
@AbraCadaver 或多或少...我无法准确分享代码 - 我分享的内容是否过于不切实际?
【参考方案1】:
这样的事情怎么样:
'(.*?)'\s*=>\s*\[[\n\r\s]*\s*(.*?)\s*=>\s*"(.*?)"
As you can see here at regex101.com
您可以在提供的侧栏中看到哪些捕获组存储了哪些值 - 特别是,您想要的那些在捕获组1
(第一组括号)中。
要访问它们,只需从结果中获取捕获组 1 的值。
【讨论】:
以上是关于如何编写一个 PHP 脚本来搜索 PHP 文件以获取特定信息?的主要内容,如果未能解决你的问题,请参考以下文章