检查目录路径是否以DIRECTORY_SEPARATOR结尾

Sha*_*ell 4 php filesystems directory user-input

在PHP中,我从用户那里收到一个本地文件目录的字符串 $path

我想知道他们是否包含了斜杠(/).我希望这是跨平台,所以我想使用PHP常量DIRECTORY_SEPARATOR

我失败的尝试包括尝试像preg_match一样

preg_match("/" . DIRECTORY_SEPARATOR . "$/", $path);
Run Code Online (Sandbox Code Playgroud)

我基本上只想要一个优雅的方法来测试字符串是否以DIRECTORY_SEPARATOR.

mvd*_*vds 16

要修复你的正则表达式:

preg_match("/" . preg_quote(DIRECTORY_SEPARATOR) . "$/", $path);
Run Code Online (Sandbox Code Playgroud)

但可能有更简单的方法来实现您的目标:

rtrim($path,DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR;
Run Code Online (Sandbox Code Playgroud)

  • @mvds.鉴于它是PHP,他们使用`\\`,就像在命名空间中一样,之前没有人使用它......哦......等一下...... (2认同)