部分代码存储在名为
的文件中
Website.php
<?php
namespace AdamInChains;
class Website
{
/**
* 02.14.2019 13:24:59 creation date
* 02.14.2019 13:28:23 last modified date
* @param array $meta_tags
*
* @return string
*/
public function index(array $meta_tags) : string{}
/**
* 02.14.2019 13:45:59 creation date
* 02.14.2019 13:49:21 last modified date
* @param array $meta_tags
*
* @return string
*/
public function about(array $meta_tags) : string{}
/**
* 02.14.2019 14:01:52 creation date
* 02.14.2019 14:33:01 last modified date
* @param array $meta_tags
*
* @return string
*/
public function contact(array $meta_tags) : string{}
}
我需要提取创建日期和上次修改日期
然后以这种方式将正则表达式结果存储到一个数组中
$array = [
// method name
"index" => [
"creation_date"=>"02.14.2019 14:01:52",
"last_modified_date"=>"02.14.2019 13:28:23"
]
];
基本上,当用户(在本例中为AdamInChains,并且您可以从名称空间声明中看到此信息)在其网站上创建新页面时,将一个新方法(声明为输入页面名称)添加到类中,并且日期为已添加到该方法的文档注释中。
直到现在,我只能提取方法名称(请参见下面的代码),但其他任务无法成功。
// regex pattern
$re = '/public function.(\w{0,})/m';
// file 'Website.php'
$str = file_get_contents('Website.php');
preg_match_all($re, $str, $matches);
// Print the entire match result
var_dump($matches);
This is the var_dump results and I'm happy with it
有人吗?
答案 0 :(得分:1)
这是一个可用于此的正则表达式:
(?<creationDate>\d{2}\.\d{2}\.\d{4}\s\d{2}:\d{2}:\d{2})\screation\sdate[^\Z]*?(?<modifiedDate>\d{2}\.\d{2}\.\d{4}\s\d{2}:\d{2}:\d{2})\slast\smodified\sdate[^\Z]*?public\sfunction\s(?<methodName>[^\(\s]+)