【问题标题】:PHP escaping \14 character in file pathsPHP在文件路径中转义\ 14字符
【发布时间】:2023-03-21 06:11:01
【问题描述】:

我知道有很多关于转义字符的主题,但我就是找不到解决问题的方法。

这很容易。这是我的字符串:

$path = "C:\Users\Me\Desktop\14409238.jpg";

但是,无论我使用多少转义技术,我都无法在不破坏它的情况下显示正确的路径。在所有情况下,\14 都将替换为

C:\Users\Me\Desktopd09238.jpg

我该如何解决这个问题?

【问题讨论】:

  • $path = "C:\\Users\\Me\\Desktop\\14409238.jpg";
  • 或者你可以使用单引号。 PHP 会将其用作文字字符串。
  • @Rizier123 是正确答案,不应该出现在 cmets 中。
  • 或者直接使用/。

标签: php string escaping


【解决方案1】:

不要在 PHP 中对 Windows 路径使用反斜杠。它足够聪明,可以为您转换:

$path = "c:/users/me/desktop/...";

使用反斜杠会遇到您遇到的确切问题 - 反斜杠会将某些字符变成元字符,而不是常规字符。

【讨论】:

    【解决方案2】:

    尝试改变,访问图片的物理路径,存放在桌面可以写成,

    $path = "C:\Users\Me\Desktop\14409238.jpg";
    

    到

    $path = "C:\\Users\\Me\\Desktop\\14409238.jpg";
    

    【讨论】:

    • 感谢您的回复。但是,我忘记了我无法控制 $path 给我的东西。好吧,它确实给了我那些烦人的反斜杠。
    • 为什么 OP 应该“试试这个”?一个好的答案总是会解释所做的事情以及这样做的原因,不仅适用于 OP,而且适用于 SO 的未来访问者。
    【解决方案3】:

    完全避免这种情况,Windows下的PHP允许你提交带有反斜杠的路径

    c://Users/Me/Desktop/file.jpg

    当脚本必须在 .nix 和 Windows 中运行时,这也避免了互操作性问题。

    【讨论】:

    • 不只是 PHP 允许它。这是 Windows 本身的一部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-16
    • 1970-01-01
    • 2011-10-06
    • 1970-01-01
    • 1970-01-01
    • 2020-04-14
    相关资源
    最近更新 更多