我有一个像这样的字符串:
../../FolderName$Username$Password
我需要将这三样东西(文件夹的路径,用户名和密码)分成各自的变量,这给我带来了麻烦。
$path = substr($_REQUEST["filename"],0, strpos($_REQUEST["filename"],'$',0)); //Gets the filepath SUCCESSFULLY
$username = substr($_REQUEST["filename"],strpos($_REQUEST["filename"],'$',0),strpos($realtmp,'$',strpos($_REQUEST["filename"],'$',0)));
//Error, can't get the username properly, it is empty so I probably have a syntax error, but in general I don't know how to structure it.
答案 0 :(得分:0)
正则表达式是解决此问题的最佳方法...正则表达式捕获组[1]包括直到但不包括“ $”的第一个实例的所有内容。捕获组[2]的工作原理相同,捕获直到但不包括“ $”的第二个实例的所有内容。捕获组[3]包括字符串末尾的所有内容。
<?php
$Filename= 'filename$username$password';
preg_match('/([^$]*)[$]([^$]*)[$]([^$]*)/', $Filename, $re);
$File = $re[1];
$Username = $re[2];
$Password = $re[3];
echo "File:{$File}\n";
echo "Username:{$Username}\n";
echo "Password:{$Password}\n";
?>
编辑:但是,如其他答案所述,从不建议将密码存储为纯文本格式
编辑2:([[^ $] *)意味着您正在“捕获一组”由$组成的所有字符。