【问题标题】:How to write a PHP script that searches a PHP file for specific information?如何编写一个 PHP 脚本来搜索 PHP 文件以获取特定信息?
【发布时间】: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 或多或少...我无法准确分享代码 - 我分享的内容是否过于不切实际?

标签: php regex scripting phpstorm


【解决方案1】:

这样的事情怎么样:

'(.*?)'\s*=>\s*\[[\n\r\s]*\s*(.*?)\s*=>\s*"(.*?)"

As you can see here at regex101.com

您可以在提供的侧栏中看到哪些捕获组存储了哪些值 - 特别是,您想要的那些在捕获组1(第一组括号)中。

要访问它们,只需从结果中获取捕获组 1 的值。

【讨论】:

    猜你喜欢
    • 2011-06-14
    • 2018-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多