第一次尝试,我想我非常接近。
我需要在wp-config.php文件中识别这一行。
define('DB_NAME','test');
那就是......
define('DB_NAME','ANYTHING');
我想出了一个适用于在线正则表达式助手的工具。
(define).\'(DB_NAME)\',\s\'(.*?)\'.;
但是,当我将其插入preg_match
时,它会返回null。
preg_match($customdb, '(define).\'(DB_NAME)\',\s\'(.*?)\'.;', $matches);
var_dump($matches);
我做错了什么?感谢。
答案 0 :(得分:5)
你错过了正则表达式分隔符。此外,正则表达式作为第一个参数(如Rikesh所说):
preg_match('/(define).\'(DB_NAME)\',\s\'(.*?)\'.;/', $customdb, $matches);
然后,点匹配任何字符,而不仅仅是开/关括号。删除不必要的捕获组,您将获得:
preg_match('/^define\(\'DB_NAME\',\s\'(.*?)\'\);/m', $customdb, $matches);
答案 1 :(得分:4)
你可以使用这个不是防弹的正则表达式:
preg_match("@define\('DB_NAME', '([^']+)'\);@", $customdb, $matches);
在实践中,空格和引号可能会有所不同。