hoangweb
4/19/2016 - 7:55 AM

php parse database_url

php parse database_url

<?php
# syntax: mysql://user:password@myhostname.com/database
//example 1
$url = parse_url(getenv('DATABASE_URL') ? getenv('DATABASE_URL') : "mysql://mysql:d8c2039ec1818d8b@dokku-mysql-wp-db:3306/wp_db");

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', trim($url['path'], '/'));
/** MySQL database username */
define('DB_USER', $url['user']);
/** MySQL database password */
define('DB_PASSWORD',$url['pass']);
/** MySQL hostname */
define('DB_HOST', $url['host'] . ":" . $url['port']);

//example 2
$database_url = exec('echo $DATABASE_URL');
$pgsql = [];
preg_match("/postgres:\/\/([a-z]*):([a-zA-Z0-9]*)@([0-9]+.[0-9]+.[0-9]+.[0-9]+)\/([a-z]*)/um", $database_url, $pgsql);

'host'     => $pgsql[3],
'database' => $pgsql[4],
'username' => $pgsql[1],
'password' => $pgsql[2],