gpt4 book ai didi

PHP:strlen 返回字符长度而不是字节长度

转载 作者:可可西里 更新时间:2023-11-01 12:50:47 25 4
gpt4 key购买 nike

我有一个 wordpress 网站。

我创建了简单的页面模板,例如:

<?php 
/**
* Template Name: Test
*/

echo strlen('Привет');

?>

然后我使用这个模板创建了一个页面。该页面显示俄语字符串“Привет”(意思是“你好”)的长度。我希望看到 12,因为由 6 个字符组成的 UTF-8 编码俄语字符串的大小应为 12 个字节,但我得到的是 6。

我在其他服务器上测试过同样的东西并且有正确的值 - 12。所以我认为原因是我的服务器配置。我有 wp 3.2.1(升级到 wp 3.5.1 后我遇到了同样的问题)和 PHP 5.3.3。

目前我已经花了大约 5 天的时间来寻找解决方案,但没有成功。有谁知道这种行为的原因是什么?

最佳答案

检查 mbstring.func_overloadphp.ini 中设置。该选项允许 PHP 使用 mb_strlen() 覆盖 strlen() 函数(对于其他等价物也类似)。这可以解释您的服务器之间的差异

编辑

引用文档链接:

To use function overloading, set mbstring.func_overload in php.ini to a positive value that represents a combination of bitmasks specifying the categories of functions to be overloaded. It should be set to 1 to overload the mail() function. 2 for string functions, 4 for regular expression functions. For example, if it is set to 7, mail, strings and regular expression functions will be overloaded.

因此设置了 2 位 的值意味着基本字符串函数将被其等效的 mbstring 函数重载,但不会重载邮件或正则表达式函数;如果你想要正常行为,这应该是0

关于PHP:strlen 返回字符长度而不是字节长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15342402/

25 4 0
文章推荐: PHP内置服务器,有什么办法可以配置它来显示目录文件?
文章推荐: javascript - 对齐组对象中的图像和文本
文章推荐: html - 改变 的速度和方向