【发布时间】:2013-12-05 11:15:15
【问题描述】:
在程序或脚本的代码中,必须将文件或目录的路径放在字符串中并不少见。这通常不是 *nix 系统上的路径的问题,因为它们使用正斜杠,在大多数语言中通常不需要转义,但 Windows 使用反斜杠作为通常 do 需要的路径在大多数语言中都进行了转义。
使用 C(++),您通常 确实 必须转义字符串中路径的斜杠,因为如果您不这样做,大多数编译器都会发出警告,但我看过其他代码,尤其是 PHP 脚本,它们 not 转义它们。例如,我见过无数的配置文件示例包含类似这样的行:
static $storageDir = 'C:\webgrind\tmp';
表面上你必须避开这样的路径,我确实考虑过它们可能是由没有实际使用 Windows 的人编写的,只是将配置数据从 Linux 外推到 Windows 而不进行实际测试,但如果是这样的话,那么代码应该失败,但它似乎经常工作。
那么你必须在代码中转义字符串中的路径吗?我问的主要是 PHP,因为这是我个人看到这种情况发生最多的地方,但我也愿意接受其他/普遍的答案。
【问题讨论】:
-
我确信我也曾在双引号字符串中看到过它们。我会留意并在下次看到问题时更新问题。
标签: php string path escaping backslash