我有一個像這樣的字符串:../../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.
1 回答

湖上湖
TA貢獻2003條經驗 獲得超2個贊
正則表達式是解決此問題的最佳方法...正則表達式捕獲組[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:([[^ $] *)表示您正在“捕獲一組”為“最多$”的字符。
- 1 回答
- 0 關注
- 152 瀏覽
添加回答
舉報
0/150
提交
取消