将PEAR:: db样式的DSN转换为PDO-DSN


Convert PEAR::DB-style DSN into PDO-DSN

我正在寻找一种方法来转换PEAR:DB/mdb2风格的DSN

phptype://username:password@hostspec/database

转换为PHP PDO支持的格式(如mysql)

$dsn = 'mysql:host=localhost;dbname=testdb';
$username = 'username';
$password = 'password';

我正在寻找一些现有的实现,但找不到任何

我已经解决了这段代码的问题,但它还没有经过适当的测试:

preg_match('|([a-z]+)://([^:]*)(:(.*))?@([A-Za-z0-9'.-]*)(/([0-9a-zA-Z_/'.]*))|',
     $dsn,$matches);
$dsn=array(
    $matches[1].':host='.$matches[5].';dbname='.$matches[7],
    $matches[2],
    $matches[4]
);