为了账号安全,请及时绑定邮箱和手机立即绑定

如果有带重音符号的大写字母,PHP 函数 substr 会清空整个字符串

如果有带重音符号的大写字母,PHP 函数 substr 会清空整个字符串

PHP
小唯快跑啊 2023-07-15 10:18:52
strlen('Angel Gallardo Perez', 0, 15) 返回空白。但“Angel Gallardo Perez”没有任何问题。如何使用带有大写重音字母的 strlen ?更长:你好。目前我在显示客户列表时遇到问题。由于语言是西班牙语,我必须显示一些带有明显口音的字母。非大写字母不是问题 (áéíóú),但大写重音字母是 (ÁÉÍÓÚ)目前显示的名称如下:strlen($tempnombre) > 15 ? substr($tempnombre,0,15)."..." : $tempnombre;我们的想法是,如果您有一个简短的名称,我会按原样显示。但如果它很长,我会缩短它并添加“...”当我有像 Ángel 这样的名字时,strlen 不会返回任何内容。我确信它是那个函数,并且只是那个函数,因为其他所有东西都只返回名称 OK。如果我只是按原样返回名称,那么它就会完美显示。我已经尝试过几件事:    $tempnombre = $this->nombre;    mb_convert_case(utf8_encode($tempnombre), MB_CASE_TITLE, 'UTF-8');    //NAME HERE IS STILL WORKING OK, dd($tempnombre) -> returns OK    return strlen($tempnombre) > 15 ? substr($tempnombre,0,15)."..." : $tempnombre;有什么想法吗?提前致谢。
查看完整描述

1 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

发布问题后才发现它......如果有人需要它,正确的方法如下:

strlen($this->nombre) > 15 ? mb_substr($this->nombre,0,15,'UTF-8')."..." : $this->nombre;

使用 mb_substr 而不是 substr。


查看完整回答
反对 回复 2023-07-15
  • 1 回答
  • 0 关注
  • 163 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信