gpt4 book ai didi

php - mb_strpos vs strpos,有什么区别?

转载 作者:可可西里 更新时间:2023-11-01 12:28:36 26 4
gpt4 key购买 nike

是的:我知道。当我们处理多字节字符时,我们应该使用 mb_* 函数。但是当我们使用 strpos 时?我们来看看这段代码(以utf-8保存)

var_dump(strpos("My symbol utf-8 is the €.", "\xE2\x82\xAC")); // int(23)

使用mb_strpos有区别吗?这不会使这项工作成为相同的工作吗?毕竟,strpos 不是在寻找字符串(多字节)吗?有理由使用 strpos 吗?

最佳答案

对于UTF-8,匹配字节序列和匹配字符序列是完全一样的。

所以他们都将在完全相同的点找到针,但是 mb_strpos 计算完整的 UTF-8 字节序列之前针,其中 strpos 计算任何字节。因此,如果您的字符串具有另一个多字节 UTF-8 序列,则结果会有所不同:

strpos("My symbolö utf-8 is the €.", "€") !== mb_strpos("My symbolö utf-8 is the €.", "€", 0, "UTF-8")

但是:

strpos("My symbol utf-8 is the €.", "€") === mb_strpos("My symbol utf-8 is the €.", "€", 0, "UTF-8")

关于php - mb_strpos vs strpos,有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13913411/

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