【问题标题】:How to get credentials from a String with many characters with substr and store them in variables如何使用 substr 从具有许多字符的字符串中获取凭据并将它们存储在变量中
【发布时间】:2018-06-11 15:26:39
【问题描述】:

大家好,我有一个包含服务器名称、数据库名称、用户名和密码的字符串,如下所示。

server_name::IMACW10\COZMOSQLEXPRESS @database_name::OneTwoThreePet 用户名::pauline_pet databasePass::root

我需要找到一种方法来 substr 并获取 databaseName、ServerName、Username 并将它们传递并存储在变量中,以便我能够使用凭据连接到服务器

在子字符串之后,我希望它们采用以下格式

【问题讨论】:

  • 正则表达式将是解决这个问题的方法,添加正则表达式标签以获得一些正则表达式专业人士的参与
  • @LiamG 添加了谢谢
  • 能否请您直接发布文本而不是屏幕截图。
  • 请删除图像并将实际字符串放入此处。请参阅How to create a Minimal, Complete and Verifyable example 获取有关如何写出人们更愿意回答的好问题的帮助
  • 开发人员应该编写代码,而不是在互联网上乞求。

标签: php regex php-7


【解决方案1】:

这是您要实现的目标的非正则表达式版本。

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

输出:

$serverName=IMACW10\COZMOSQLEXPRESS
$databaseName=OneTwoThreePet
$username=pauline_pet
$pass=root

希望对你有帮助。

【讨论】:

    【解决方案2】:

    对于您的示例数据,您可以首先使用explode 一个空格,然后使用:: 再次对每个项目使用explode,并从数组[1] 中获取第二个值。

    然后您可以使用例如list 来创建您的变量。

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

    Demo

    这会给你:

    servername:IMACW10\COZMOSQLEXPRESS
    databasename:OneTwoThreePet
    username:pauline_pet
    pass:root
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-06
      • 2014-09-13
      • 2015-05-07
      • 2017-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-14
      相关资源
      最近更新 更多