您好,我正在尝试从根目录运行我的 ssh bash 脚本(它可以访问我的服务器上的所有数百个数据库)。我正在尝试获取我的 WordPress 网站的数据库名称,而无需登录并打开文件并复制并粘贴数据库名称。我这样做是为了继续使用脚本在特定数据库中执行其他操作。
因此,文件 wp-config.php 中数据库的行项目始终如下所示: name Define( 'DB_NAME', 'xyz' );
我只是想找到该行项目,然后获取/提取并稍后在脚本中使用该数据库名称(即 xyz)(即 $db)。就是这样。
我假设使用 grep/sed/regex 或组合或其他东西可以做到这一点,但我不知道如何做到。如果有人知道该怎么做,请告诉我?
这对于 sed 来说是一个合适的任务。使用正则表达式选择匹配的定义行并使用捕获组提取值:
db=$(sed -n "s/define( *'DB_NAME', *'\([^']*\)'.*/\1/p" wp-config.php)
echo $db
这段代码对我有用,我已经从 wp-config.php 中提取了数据库详细信息并将其粘贴到 myfile.php
//Path to your wp-config.php file
$wp_config_path = 'wp-config.php';
// Include the wp-config.php file
if (file_exists($wp_config_path)) {
include($wp_config_path);
// Retrieve the database credentials
$db_name = defined('DB_NAME') ? DB_NAME : '';
$db_user = defined('DB_USER') ? DB_USER : '';
$db_password = defined('DB_PASSWORD') ? DB_PASSWORD : '';
$db_host = defined('DB_HOST') ? DB_HOST : '';
} else {
echo "wp-config.php not found or invalid path.";
}
注意:确保您的路径正确,或者您的文件和 wp-config 位于同一文件夹中..