php踩坑记录

文章目录

  1. 1. 函数
    1. 1.1. mb_strlen 不生效
  2. 2. 解决方案
    1. 2.1. session文件锁

函数

mb_strlen 不生效

有一天发现本地mb_strlen('哈')本地为1,服务器为3,猜测应该是配置问题
看文档关键在于mb_internal_encoding

1
2
3
4
5
6
7
8
9
mixed mb_strlen ( string $str [, string $encoding = mb_internal_encoding() ] )

继续搜 mbstring.internal_encoding (定义内部字符的默认编码)

Warning: This feature has been DEPRECATED as of PHP 5.6.0. Relying on this feature is highly discouraged.。

PHP 5.6 及更新版的用户应该将此选项留空,并设置 default_charset 作为代替。

好吧,服务器 default_charset 没设置,然后默认用 ISO-8859-1

解决方案:

1
2
//入口设置,有权限的话也可以 ini_set('default_charset','UTF-8');
mb_internal_encoding("UTF-8");

解决方案

session文件锁

并发下,php是不推荐用文件存储的方式管理session的,因为session管理有 【读写锁】!!!附干活两篇

如有疑问,请文末留言交流或邮件:newbvirgil@gmail.com 本文链接 : https://newbmiao.github.io/2016/11/08/some-misuse-of-php.html