php连接多个ip信息数据库

18-09-05 14:15 字数 193 阅读 1804 已编辑

数据库连接信息文件如下: $ 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);

1人点赞>
关注 收藏 改进 举报
8 条评论
排序方式 时间 投票
Up骚年

@john 有先决条件

john
PHP好厉害呀,点赞
Up骚年
@john 一般水平。
Up骚年

@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

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

$ 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

前辈好厉害呀

Up骚年

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

Up骚年

注意文件路径


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);  

    }  

}  
请登录后发表评论
文章
1
粉丝
0
喜欢
1
收藏
0
排名 : 58
访问 : 1804
私信
文章归档
最新文章
最受欢迎