为了账号安全,请及时绑定邮箱和手机立即绑定

拆分一个相当复杂的字符串,需要帮助

拆分一个相当复杂的字符串,需要帮助

PHP
九州编程 2021-04-30 14:12:46
我有一个像这样的字符串:../../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:([[^ $] *)表示您正在“捕获一组”为“最多$”的字符。


查看完整回答
反对 回复 2021-05-14
  • 1 回答
  • 0 关注
  • 133 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信