我正在尝试使用正则表达式(在 Java 中)从 PHP 文件中获取所有包含指令。
表达式应该只选取那些文件名表示为未连接的字符串文字的文件。不需要常量或变量。
检测应该适用于单引号和双引号,include
-s 和 require
-s,以及 _once
和 last 的额外技巧但同样重要的是,关键字和函数式调用。
一个粗略的输入样本:
<?php
require('a.php');
require 'b.php';
require("c.php");
require "d.php";
include('e.php');
include 'f.php';
include("g.php");
include "h.php";
require_once('i.php');
require_once 'j.php';
require_once("k.php");
require_once "l.php";
include_once('m.php');
include_once 'n.php';
include_once("o.php");
include_once "p.php";
?>
并输出:
["a.php","b.php","c.php","d.php","f.php","g.php","h.php","i.php","j.php","k.php","l.php","m.php","n.php","o.php","p.php"]
有什么想法吗?
最佳答案
使用token_get_all
.它很安全,不会让您头疼。
还有PEAR的PHP_Parser如果您需要用户态代码。
关于java - 用于获取 include 和 require 指令的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6768180/