php连接多个ip信息数据库

数据库连接信息文件如下:
$ cat global_ip.txt
10.81.223.142:13306
10.86.92.213:13306
10.81.223.174:13306

现在php里的脚本想去连接数据库,想从上面随机获取一个ip和端口
$mysqlconn = new mysqli(“10.81.223.174”, “logstat”, “logstat123”, “db_mfw”, 13306);

注意文件路径

  
if ($configContent = file_get_contents(__DIR__ . '/global_ip.txt')) {  
  
    $configArray = explode("\n", $configContent);  
  
    if (!empty($configArray)) {  
  
        $config = $configArray[array_rand($configArray)];  
  
        list($ip, $port) = explode(":", $config);  
  
        var_dump($ip, $port);  
  
    }  
  
}  
  

$configContent = trim(file_get_contents(DIR . ‘/global_ip.txt’)); 首尾去下换行符号。

前辈好厉害呀

要是数据库连接信息文件改成下面这样:

$ cat global_ip.txt

[global_ip]

10.81.223.142:13306

10.86.92.213:13306

10.81.223.174:13306

[user_pass]

user:logstat

pass:logstat123

[db_name]

db1:db_mfw

db2_db_driserver

现在php里的脚本想去连接数据库,想从上面随机获取一个ip和端口, 数据库用户名及密码,db名称.

$mysqlconn = new mysqli(“10.81.223.174”, “logstat”, “logstat123”, “db_mfw”, 13306);

@john: 在没什么干扰字符的情况下,如下:

[global_ip]
10.81.223.142:13306
10.86.92.213:13306
10.81.223.174:13306

[user_pass]
user:logstat
pass:logstat123

[db_name]
db1:db_mfw
db2:db_driserver

$ip = $port = $user = $pass = $db = '';
if ($configContent = trim(file_get_contents(__DIR__ . '/dbconfig.txt'))) {
    $itemArray = explode("\n\n", $configContent);
    if (!empty($itemArray)) {
        foreach ($itemArray as $item) {
            $subItemArr = explode("\n", $item);
            var_dump($subItemArr);
            if (!empty($subItemArr) && is_array($subItemArr)) {
                // 随机取一个ip和port
                if (false !== strpos($subItemArr[0], 'global_ip')) {
                    unset($subItemArr[0]);
                    $ipPortPair = $subItemArr[array_rand($subItemArr)];
                    list($ip, $port) = explode(":", $ipPortPair);
                }
                // 取user和pass
                if (false !== strpos($subItemArr[0], 'user_pass')) {
                    list($temp, $user) = explode(":", $subItemArr[1]);
                    list($temp, $pass) = explode(":", $subItemArr[2]);
                }
                // 随机取一个db
                if (false !== strpos($subItemArr[0], 'db_name')) {
                    unset($subItemArr[0]);
                    $dbItem = $subItemArr[array_rand($subItemArr)];
                    list($temp, $db) = explode(":", $dbItem);
                }
            }
        }
    }
}

var_dump($ip, $port, $user, $pass, $db);

@john: 有先决条件

PHP好厉害呀,点赞

@john: 一般水平。