简单的strtolower不工作

fig*_*r20 8 php buddypress

我确定这是显而易见的我缺少但我有一个字符串'GB'存储为$ str然后使用strtolower回显...

$str = bp_member_profile_data('field=Country');
echo strtolower($str);
Run Code Online (Sandbox Code Playgroud)

我期待看到'gb'(小写),但输出仍然是'GB'(大写)

我能做错什么?

UPDATE结果证明问题与bp_member_profile_data有关,这是一个BuddyPress PHP函数,它会自动回声,因此忽略了strtolower - 感谢大家帮助缩小范围!

Jea*_*ean 7

尝试使用:

mb_strtolower($str);
Run Code Online (Sandbox Code Playgroud)

这可能有效.

来自PHP手册:

如果输入字符串与服务器语言环境的语言不同,则应使用mb_strtolower()函数.

功能原型是:

string mb_strtolower ( string $str [, string $encoding = mb_internal_encoding() ] )
Run Code Online (Sandbox Code Playgroud)

您可以尝试添加适当的编码.

编码参数是字符编码.如果省略,将使用内部字符编码值.

  • 奇怪的.正如马里奥所建议的那样,请使用hexdump结果字符串吗?也许您应该指定字符编码? (2认同)
  • 感谢您将此帖标记为答案.但它没有回答这个问题,是吗? (2认同)

ena*_*upe 4

查看好友按下bp_member_profile_data()功能,它回显:

function bp_member_profile_data( $args = '' ) {
    echo bp_get_member_profile_data( $args );
}
Run Code Online (Sandbox Code Playgroud)

您可能想使用bp_get_member_profile_data()