将DIRECTORY_SEPARATOR与trim()一起使用是否安全

时间:2014-09-20 06:55:08

标签: php cross-platform

这样的事情是否安全:

rtrim($pathToSomeDirectory, DIRECTORY_SEPARATOR);

我担心的是,Windows系统的反斜杠目录分隔符是否会被视为筛选字符?

2 个答案:

答案 0 :(得分:1)

假设您指的是反斜杠被解释为转义字符,让我们看一下以下代码:

var_dump(DIRECTORY_SEPARATOR)
var_dump('\\')

上面的代码将在Windows操作系统上生成以下结果:

string(1) "\"
string(1) "\"

这有助于在Windows操作系统上安全使用DIRECTORY_SEPARATOR的参数,其中需要文字反斜杠,例如:修剪(或其变体rtrim)的参数。

我已经在差不多六年之久的PHP版本(即PHP 5.2.10)上对此进行了测试,DIRECTORY_SEPARATOR被视为“\”(不是“\”,这是一个未终止的字符串)

答案 1 :(得分:0)

查看功能手册" rtrim" (见下文)列出了要修剪的这些字符:

  

如果没有第二个参数,rtrim()将删除这些字符:

     
      
  • " " (ASCII 32(0x20)),一个普通的空间。
  •   
  • " \吨" (ASCII 9(0x09)),一个标签。
  •   
  • " \ n" (ASCII 10(0x0A)),新行(换行符)。
  •   
  • " \ R" (ASCII 13(0x0D)),回车。
  •   
  • " \ 0" (ASCII 0(0x00)),空字节。
  •   
  • " \ X0B" (ASCII 11(0x0B)),垂直制表符。
  •   

http://php.net/manual/en/function.rtrim.php

相关问题