在程序或脚本的代码中,必须将路径放到字符串中的文件或目录中并不罕见。这通常不是* nix系统上路径的问题,因为它们使用正斜杠,通常不需要在大多数语言中进行转义,但Windows使用反斜杠作为通常做需要的路径以大多数语言逃脱。
使用C(++),你通常做必须转义字符串中路径的斜杠,因为如果不这样做,大多数编译器都会发出警告,但我看到了其他代码,特别是PHP脚本,不逃避它们。例如,我已经看到了无数的配置文件示例,其中包含与此类似的行:
static $storageDir = 'C:\webgrind\tmp';
表面上你必须逃避这样的路径,我确实认为它们可能是那些实际上没有使用Windows的人,只是简单地将配置数据从Linux推送到Windows而没有实际测试,但如果是这样,那么代码应该失败,但它似乎经常有用。
那么你必须在代码中转义字符串中的路径吗?我主要是在问PHP,因为我个人认为这是最常见的,但我也对其他/通用答案持开放态度。
答案 0 :(得分:2)
PHP中的单引号字符串不需要双重转义。不像双引号字符串,单个反斜杠后面的小写字母可能会造成麻烦。
但是在单引号字符串中,反斜杠仍然可以自行转义。
'abc\\abc' == 'abc\abc'
答案 1 :(得分:2)
特别说到路径,正斜杠也会这样做
'C:/webgrind/tmp'
答案 2 :(得分:1)
单引号会禁止\\
和\'
以外的所有转义序列,因此除非它在字符串文字中显示为最后一个字符,否则无需转义它们中的反斜杠。