分类 PHP 下的文章

这是个很危险的决定,但是我还是坚持更新到了v1.2.0-rc.2 0b021e5 ,总有人要去试错提交issue
这是一个预发行版本,Typecho的作者出于某种原因在30 Oct 2017 1.1(17.10.30)后没有再发布稳定发行版,但是强大的开源社区还是不断地对Typecho进行了相当活跃的迭代。
感谢开源社区,替换admin和var目录后我顺利完成了整个程序的更新。

正常情况下因为默认数据库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。