10

Im sure this is something obvious i'm missing but I have a string 'GB' that is stored as $str and is then echoed out using strtolower...

$str = bp_member_profile_data('field=Country');
echo strtolower($str);

I am expecting to see 'gb' (lowercase) but the output is still 'GB' (uppercase)

What could I be doing wrong?

UPDATE Turns out That the issue lied with bp_member_profile_data, this is a BuddyPress PHP function that automatically echos so it was ignoring the strtolower - Thanks to everybody for helping to narrow it down!

mickmackusa
  • 37,596
  • 11
  • 75
  • 105
fightstarr20
  • 10,259
  • 33
  • 132
  • 247

2 Answers2

12

Try to use:

mb_strtolower($str);

This may work.

From PHP Manual:

If the input string is in different language that server locale, then you should use mb_strtolower() function.

The function prototype is:

string mb_strtolower ( string $str [, string $encoding = mb_internal_encoding() ] )

You could try adding the appropriate encoding.

The encoding parameter is the character encoding. If it is omitted, the internal character encoding value will be used.

Jean
  • 7,505
  • 6
  • 42
  • 58
4

Check out buddy press bp_member_profile_data() function, it echoes:

function bp_member_profile_data( $args = '' ) {
    echo bp_get_member_profile_data( $args );
}

You might want to use bp_get_member_profile_data()

enapupe
  • 13,199
  • 3
  • 28
  • 43