1

第一次尝试,我认为我非常接近。

我需要在 wp-config.php 文件中识别这一行。

定义('DB_NAME','测试');

所以就是..

定义('DB_NAME','任何东西');

我想出了这个在在线正则表达式助手中工作的方法。

(define).\'(DB_NAME)\',\s\'(.*?)\'.;

但是,当我将其插入时preg_match,它会返回 null。

preg_match($customdb, '(define).\'(DB_NAME)\',\s\'(.*?)\'.;', $matches);
var_dump($matches);

我究竟做错了什么?谢谢。

4

2 回答 2

5

您缺少正则表达式分隔符。此外,正则表达式作为第一个参数(如 Rikesh 所述):

preg_match('/(define).\'(DB_NAME)\',\s\'(.*?)\'.;/', $customdb, $matches);

然后,点匹配任何字符,而不仅仅是左括号/右括号。删除不必要的捕获组,您将获得:

preg_match('/^define\(\'DB_NAME\',\s\'(.*?)\'\);/m', $customdb, $matches);
于 2013-05-29T07:56:32.413 回答
4

您可以使用这个不是防弹的正则表达式:

preg_match("@define\('DB_NAME', '([^']+)'\);@", $customdb, $matches);

实际上,空格和引号可能会有所不同。

于 2013-05-29T08:00:00.217 回答