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