分类 PHP 下的文章

正常情况下因为默认数据库utf-8编码无法支持emoji,保存含emoji内容会出现500 Database Query Error.

进入SQL数据库

alter table typecho_contents convert to character set utf8mb4;
alter table typecho_comments convert to character set utf8mb4;
alter table typecho_users convert to character set utf8mb4;
alter table typecho_fields convert to character set utf8mb4;
alter table typecho_metas convert to character set utf8mb4;
alter table typecho_options convert to character set utf8mb4;
alter table typecho_relationships convert to character set utf8mb4;

Typecho_是安装时设置的表前缀,如果你的表前缀不是默认前缀请自行替换。
不知道自己的表前缀往下看。

修改Typecho本地配置文件

默认配置文件是:config.inc.php
红色部分是表前缀,蓝色是你需要修改的,把默认的utf8改为utf8mb4即可
config.inc.php部分截图

Emoji测试

😉

isset() 函数用于检测变量是否已设置并且非 NULL。

isset ( mixed $var [, mixed $... ] )

如果一次传入多个参数,那么 isset() 只有在全部参数都被设置时返回 TRUE,计算过程从左至右,中途遇到没有设置的变量时就会立即停止。

返回值bool

如果指定变量存在且不为 NULL,则返回 TRUE,否则返回 FALSE。

get_headers — 取得服务器响应一个 HTTP 请求所发送的所有标头.

说明

get_headers(string $url, int $format = 0): array

参数

url :目标 URL。
format :如果将可选的 format 参数设为 1,则 get_headers() 会解析相应的信息并设定数组的键名。
(相当于得到多个有序排列的,被命名,赋值好的变量作为元素组成的数组。)

返回值

返回包含有服务器响应一个 HTTP 请求所发送标头的索引或关联数组,如果失败则返回 false。