Sha*_*awn 5 php copy-paste gedit
这是php文件中一行的两个版本:
第一版:
if ($projet['sourceDonnees'] === (string)$CONSTANTS['sourceDonnees_saisie']) {
Run Code Online (Sandbox Code Playgroud)
第二版:
if ($projet['sourceDonnees'] === (string)$CONSTANTS['sourceDonnees_saisie']) {
Run Code Online (Sandbox Code Playgroud)
虽然它们看起来相同,但第一个版本会产生一个PHP Parse error: syntax error, unexpected T_STRING,而第二个版本可以正常工作.两者之间的区别在于第一个版本是粘贴并修改的,而第二个版本是完全手工写出的.这里发生了什么?
注意:该行是从以UTF-8编码的文本文件中复制并粘贴到另一个UTF-8文本文件中.所有操作都在gedit中完成,这两个文件都是由我在gedit中编写的.
您已经复制了UTF-8引号,PHP无法解析这些引号.删除引号并将其替换为ASCII等效项(即键入它们).
有关ASCII与UTF-8引号的更多信息,请参阅http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
当我将第一行复制并粘贴到文本编辑器中并打开“显示不可见字符”选项时,它看起来像这样:
\n\n
if ($projet[\'sourceDonnees\']\xe2\x80\xa2=== (string)$CONSTANTS[\'sourceDonnees_saisie\']) {\nRun Code Online (Sandbox Code Playgroud)\n\n注意和 之间\xe2\x80\xa2的。]===
你的第二行代码显示得非常干净。
\n\n很多时候,当您从网站复制和粘贴文本时,您会发现一些不可见的杂散字符。但是,我不知道什么键盘组合可以从头开始重现这一点。
\n\n进一步的实验揭示了这个不可见的字符是“非 ASCII”...... BBEdit文本编辑器简单地称它们为“gremlins”,甚至有一个“zap gremlins”功能。
\n