This article is categorized as "Garbage" . It should NEVER be appeared in your search engine's results.
假设使用了 sudo apt install php 安装一个默认的php(2023年6月执行这个命令会安装php8.1)
乱码代码:
<?php
$time = "10分钟";
echo substr($time, -1);
?>
会出现这样的乱码,无论是浏览器还是php命令行运行都是这样
已经检查过php.ini的charset为utf-8,linux整体环境也正常支持中文,看不出什么问题
要点1:代码要使用mb_substr(), mb_strlen()等方法判断中文
(这个和Linux php环境没什么关系,这是语法问题,涉及到中文字符串都要注意)
🔗 [PHP实现中文字符串截取无乱码 - 心之所依 - 博客园] https://www.cnblogs.com/sgm4231/p/9771496.html
改了代码以后可能会发现无法运行(因为"Uncaught Error: Call to undefined function mb_substr()..."一类的报错)
则需要:
$ sudo apt-get install php-mbstring
来源:🔗 [php - Fatal error: Call to undefined function mb_substr() - Stack Overflow] https://stackoverflow.com/questions/14035698/fatal-error-call-to-undefined-function-mb-substr
现在这段代码就可以正常运行了:
<?php
$time = "10分钟";
echo mb_substr($time, mb_strlen($time) - 1, 1);
?>