gpt4 book ai didi

PHP - strlen 返回由引号引起的不正确的字符串长度

转载 作者:行者123 更新时间:2023-12-05 08:58:58 26 4
gpt4 key购买 nike

我有以下来自数据库的字符串:Let's Get Functional

如果我通过 strlen 运行它,它会返回 25 个字符而不是预期的 20 个字符。var 转储显示字符串看起来像上面的字符串(没有 html 引用等)。

如果我删除单引号,strlen 将返回 19 个字符。

显然引号返回 5 个字符而不是 1 个字符 - 为什么?我怎样才能阻止它?

谢谢!

最佳答案

ASCII 实体名称是 ' for ',等于 5 个字符:ASCII Table

这个问题似乎与你的 ' 被评估,而不仅仅是被阅读有关。试着让你的字符串像那样:

$myString = 'Hello World!';

不是这样的:

$myString = "Hello World!";

它读取并评估所有字符串的内容,而不仅仅是读取,因此将您的特殊字符解释为它们的 ASCII 代码。

PHP 手册说:If the string is enclosed in double-quotes ("), PHP will interpret more escape sequences for special characters

我认为你的 strlen() 函数是用包含 " 的参数调用的,所以它给出了评估的 strlen(),而不是读取的.

试试这个:

$countChars = strlen(utf8_decode($myString));

utf8_decode() converts characters that are not in ISO-8859-1 to '?', which, for the purpose of counting, is quite alright.

看看this有关单引号和双引号之间差异的更多信息。

关于PHP - strlen 返回由引号引起的不正确的字符串长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19024821/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com