1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
<?php if ( ! defined( 'PB_IMPORTBUDDY' ) || ( true !== PB_IMPORTBUDDY ) ) { die( '<html></html>' ); } Auth::require_authentication(); // Die if not logged in.
$page_title = 'Database Text Replace Tool'; require_once( '_header.php' ); ?>
<div class="wrap"> <?php $configFile = ''; if ( ! file_exists( ABSPATH . 'wp-config.php' ) ) { // Normal config file not found so warn or see if parent config may exist. $parentConfigMessage = ''; $parentConfig = dirname( ABSPATH ) . '/wp-config.php'; if ( @file_exists( $parentConfig ) ) { // Parent config exists so offer it as an option or possibly use it if user has selected to do so. if ( pb_backupbuddy::_GET( 'parent_config' ) == 'true' ) { // User opted to use parent config. $configFile = $parentConfig; } else { // User has not opted to use parent config yet so set message to offer it. $parentConfigMessage = '<br><br><b>However</b>, a wp-config.php file was found in the parent directory as `' . $parentConfig . '`. <a href="?page=dbreplace&parent_config=true"><b>Click here</b></a> if you would like to run this tool using this wp-config.php file in the parent directory.'; } } if ( '' == $configFile ) { pb_backupbuddy::alert( '<b>Error:</b> This tool requires an existing WordPress installation to perform database replacements on. No WordPress wp-config.php configuration file was found in the same directory as importbuddy.php. ' . $parentConfigMessage . ' <br><br> <b>Note:</b> ImportBuddy automatically handles migrating & replacing your site URLs and file paths during restore/migration; this tool is not needed for normal backup / restore operations.', true ); } } else { // Use normal config file. $configFile = ABSPATH . 'wp-config.php'; }
if ( '' != $configFile ) { // Read in wp-config.php file contents. $configContents = file_get_contents( $configFile ); if ( false === $configContents ) { pb_backupbuddy::alert( 'Error: Unable to read wp-config.php configuration file.' ); return; } // Grab database settings from wp-config.php contents. preg_match( '/define\([\s]*(\'|")DB_NAME(\'|"),[\s]*(\'|")(.*)(\'|")[\s]*\);/i', $configContents, $matches ); $databaseSettings['name'] = $matches[4]; preg_match( '/define\([\s]*(\'|")DB_USER(\'|"),[\s]*(\'|")(.*)(\'|")[\s]*\);/i', $configContents, $matches ); $databaseSettings['username'] = $matches[4]; preg_match( '/define\([\s]*(\'|")DB_PASSWORD(\'|"),[\s]*(\'|")(.*)(\'|")[\s]*\);/i', $configContents, $matches ); $databaseSettings['password'] = $matches[4]; preg_match( '/define\([\s]*(\'|")DB_HOST(\'|"),[\s]*(\'|")(.*)(\'|")[\s]*\);/i', $configContents, $matches ); $databaseSettings['host'] = $matches[4]; preg_match( '/\$table_prefix[\s]*=[\s]*(\'|")(.*)(\'|");/i', $configContents, $matches ); $databaseSettings['prefix'] = $matches[2]; //print_r( $databaseSettings ); // Connect to database. global $wpdb; $wpdb = new wpdb( $databaseSettings['username'], $databaseSettings['password'], $databaseSettings['name'], $databaseSettings['host'] ); if ( false === $wpdb->dbh ) { pb_backupbuddy::alert( 'Error #858383: Unable to connect to database using settings in wp-config.php. Verify connection settings.' ); } else { require_once( '_dbreplace.php' ); } } ?> </div>
<?php require_once( '_footer.php' );
|