wpcli 错误提示 phar:///usr/local/bin/wp/vendor/wp-cli/wp-cli/php/WP_CLI/Runner.php(1197)

作者

今天使用wp-cli修改一个wordpress网站的时候,出现了一个错的提示。本来以为是php版本,或者wp-cli 的版本问题。 后来发现是文件的编码文件。也就是有字节顺序引起的问题

错误的信息提示

wpcli 错误提示 phar:///usr/local/bin/wp/vendor/wp-cli/wp-cli/php/WP_CLI/Runner.php(1197)

BOM(Byte Order Mark),字节顺序标记,出现在文本文件头部,Unicode编码标准中用于标识文件是采用哪种格式的编码。

百度百科的介绍

UTF-8 不需要 BOM 来表明字节顺序,但可以用 BOM 来表明编码方式。字符 "Zero Width No-Break Space" 的 UTF-8 编码是 EF BB BF。所以如果接收者收到以 EF BB BF 开头的字节流,就知道这是 UTF-8编码了。Windows 就是使用 BOM 来标记文本文件的编码方式的。

类似WINDOWS自带的记事本等软件,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM)。它是一串隐藏的字符,用于让记事本等编辑器识别这个文件是否以UTF-8编码。对于一般的文件,这样并不会产生什么麻烦。但对于 PHP来说,BOM是个大麻烦。

解决的方法

删除带哦Bom字节即可。 去除的方法比较简单。这里使用vim作为一个演示。

使用 vim 去除bom

head -n3 wp-config.php | hexdump -C

查看一下前三行的编码
bom
可以看到 ef bb bf 开头的就是BOM信息。

vim wp-config.php
:set nobomb
:wq

head -n3 wp-config.php | hexdump -C

操作后就可以换看到 BOM 信息已经被删除
no bom

回复

电子邮件地址不会被公开。