- foreach ($configFile as $line_num => $line) {
- switch (substr($line,0,16)) {
- case "define('DB_NAME'":
- $configFile[$line_num] = str_replace("putyourdbnamehere", $dbname, $line);
- break;
- case "define('DB_USER'":
- $configFile[$line_num] = str_replace("'usernamehere'", "'$uname'", $line);
- break;
- case "define('DB_PASSW":
- $configFile[$line_num] = str_replace("'yourpasswordhere'", "'$passwrd'", $line);
- break;
- case "define('DB_HOST'":
- $configFile[$line_num] = str_replace("localhost", $dbhost, $line);
+ // Fetch or generate keys and salts.
+ $no_api = isset( $_POST['noapi'] );
+ if ( ! $no_api ) {
+ require_once( ABSPATH . WPINC . '/class-http.php' );
+ require_once( ABSPATH . WPINC . '/http.php' );
+ /**#@+
+ * @ignore
+ */
+ function get_bloginfo() {
+ return wp_guess_url();
+ }
+ /**#@-*/
+ $secret_keys = wp_remote_get( 'https://api.wordpress.org/secret-key/1.1/salt/' );
+ }
+
+ if ( $no_api || is_wp_error( $secret_keys ) ) {
+ $secret_keys = array();
+ require_once( ABSPATH . WPINC . '/pluggable.php' );
+ for ( $i = 0; $i < 8; $i++ ) {
+ $secret_keys[] = wp_generate_password( 64, true, true );
+ }
+ } else {
+ $secret_keys = explode( "\n", wp_remote_retrieve_body( $secret_keys ) );
+ foreach ( $secret_keys as $k => $v ) {
+ $secret_keys[$k] = substr( $v, 28, 64 );
+ }
+ }
+
+ $key = 0;
+ // Not a PHP5-style by-reference foreach, as this file must be parseable by PHP4.
+ foreach ( $config_file as $line_num => $line ) {
+ if ( '$table_prefix =' == substr( $line, 0, 16 ) ) {
+ $config_file[ $line_num ] = '$table_prefix = \'' . addcslashes( $prefix, "\\'" ) . "';\r\n";
+ continue;
+ }
+
+ if ( ! preg_match( '/^define\(\'([A-Z_]+)\',([ ]+)/', $line, $match ) )
+ continue;
+
+ $constant = $match[1];
+ $padding = $match[2];
+
+ switch ( $constant ) {
+ case 'DB_NAME' :
+ case 'DB_USER' :
+ case 'DB_PASSWORD' :
+ case 'DB_HOST' :
+ $config_file[ $line_num ] = "define('" . $constant . "'," . $padding . "'" . addcslashes( constant( $constant ), "\\'" ) . "');\r\n";