Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么不是';"\";转义此PHP日期格式?_Php_Date_Escaping - Fatal编程技术网

为什么不是';"\";转义此PHP日期格式?

为什么不是';"\";转义此PHP日期格式?,php,date,escaping,Php,Date,Escaping,这是日期。 正在转义所有内容,但“\a\t”中的t除外。有人知道为什么吗 date("M m\, Y \a\t g\:ia", $s->post_date); “\t”是水平制表符的转义序列 使用'\t'或“\\t” 单引号字符串按字面意思解释\,我建议您使用它。否则,您必须转义\字符才能对其进行逐字解释 在PHP中,双引号字符串中无效转义序列前面的\也会被逐字解释。我宁愿避免这种行为,遵循最小意外的原则 ps.(感谢@IMSoP)有两种情况下,\s不能在单引号字符串中进行字面解释:

这是日期。 正在转义所有内容,但“\a\t”中的t除外。有人知道为什么吗

date("M m\, Y \a\t g\:ia", $s->post_date);
“\t”
是水平制表符的转义序列

使用
'\t'
“\\t”

单引号字符串按字面意思解释
\
,我建议您使用它。否则,您必须转义
\
字符才能对其进行逐字解释

在PHP中,双引号字符串中无效转义序列前面的
\
也会被逐字解释。我宁愿避免这种行为,遵循最小意外的原则

ps.(感谢@IMSoP)有两种情况下,
\
s不能在单引号字符串中进行字面解释:

  • 加倍反斜杠仍然是可能的,但是可选的。例如:
    '\\hi'=='\hi'
  • 字符串分隔符字符必须在字符串文字内转义。例如:<代码>'\''==''“
不过,单引号字符串并不令人惊讶,因为
\n
\r
\t
\v
\040
和类似的结果是字符串文本中的实际字符序列,而不是这些被解释为转义序列


将所有必须按字面解释的反斜杠加倍也是一个稳健的选择,它同时适用于双引号和单引号字符串。

一个小小的挑剔:单引号字符串按字面解释<代码>\`trumbly**,除了序列\`和<代码>\`**。这有一个奇怪的效果,即'\t'和
'\\t'
实际上是同一个字符串(一个
`),就像
'\\\t'和
'\\\\t'
(两个反斜杠)。@IMSoP注释中的“\\”字符内联代码在这里被严重地窃听了<代码>:(但我明白你的意思。=]是的,我刚刚意识到;反斜杠转义总是一件痛苦的事。关键是,它们在PHP中的单引号内可能和双引号一样令人惊讶,因为将它们加倍仍然是可能的,但却是可选的。我建议总是将它们加倍,尽管看起来很难看。仅供参考。@IMSoP Oh do单引号字符串中的双引号转义,这是我没有尝试过的。感谢您的输入,我将在运行多个测试后将其添加到答案中。是的,这些转义总是很痛苦。
=]