Php 如何使用substr从包含多个字符的字符串中获取凭据并将其存储在变量中
大家好,我有一个字符串,包含ServerName、databaseName、用户名和密码,如下所示 服务器名称::IMACW10\COZMOSQLEXPRESS@database\u name::onetwotherpet用户名::pauline\u pet databasePass::root 我需要找到一种方法来substr,获取databaseName、ServerName、Username和pass,并将它们存储在变量中,以便能够使用凭据连接到服务器 在子字符串之后,我希望它们采用以下格式Php 如何使用substr从包含多个字符的字符串中获取凭据并将其存储在变量中,php,regex,php-7,Php,Regex,Php 7,大家好,我有一个字符串,包含ServerName、databaseName、用户名和密码,如下所示 服务器名称::IMACW10\COZMOSQLEXPRESS@database\u name::onetwotherpet用户名::pauline\u pet databasePass::root 我需要找到一种方法来substr,获取databaseName、ServerName、Username和pass,并将它们存储在变量中,以便能够使用凭据连接到服务器 在子字符串之后,我希望它们采用以下格
这里是您试图实现的非正则版本
$str = "server_name::IMACW10\COZMOSQLEXPRESS @database_name::OneTwoThreePet username::pauline_pet databasePass::root";
$test = explode(" ", $str);
$array = array();
foreach($test as $key){
$newkey = strtok($key,":");
$array[$newkey] = substr($key, strpos($key, ":") + 2);
}
list($server, $dbname, $username, $pass) = array_values($array);
echo '$serverName='.$server.'<br> $databaseName='.$dbname.'<br> $username='.$username.'<br> $pass='.$pass;
我希望这可能会对您有所帮助。对于示例数据,您可以首先使用空格,然后对每个项目使用explode再次使用
:
,并从数组中获取第二个值[1]
然后您可以使用例如来创建变量
$str = "server_name::IMACW10\COZMOSQLEXPRESS @database_name::OneTwoThreePet username::pauline_pet databasePass::root";
list($serverName, $databaseName, $username, $pass) = array_map(function ($x) {
return explode('::', $x)[1];
}, explode(' ', $str));
echo sprintf("servername:%s<br>databasename:%s<br>username:%s<br>pass:%s",
$serverName,
$databaseName,
$username,
$pass
);
Regex将是解决这个问题的方法,添加Regex标记以获得一些Regex pro的involved@LiamG添加感谢扫描请直接发布文本而不是截图。请删除图像并将实际字符串放在此处。有关如何编写一个人们更愿意回答的好问题的帮助,请参阅。开发人员应该编写代码,而不是在互联网上乞求。
$str = "server_name::IMACW10\COZMOSQLEXPRESS @database_name::OneTwoThreePet username::pauline_pet databasePass::root";
list($serverName, $databaseName, $username, $pass) = array_map(function ($x) {
return explode('::', $x)[1];
}, explode(' ', $str));
echo sprintf("servername:%s<br>databasename:%s<br>username:%s<br>pass:%s",
$serverName,
$databaseName,
$username,
$pass
);
servername:IMACW10\COZMOSQLEXPRESS
databasename:OneTwoThreePet
username:pauline_pet
pass:root