2013-03-30 18 views
8

Im sicuro che questo è qualcosa di ovvio che mi manca, ma ho una stringa 'GB' che viene memorizzato da $ str ed è quindi eco utilizzando strtolower ...strtolower semplice non funziona

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

Sono mi aspetto di vedere "gb" (in minuscolo) ma l'output è ancora "GB" (maiuscolo)

Cosa potrei fare di sbagliato?

UPDATE scopre che la questione ha mentito con bp_member_profile_data, si tratta di una funzione di BuddyPress PHP che echos automaticamente così è stato ignorando lo strtolower - Grazie a tutti per aver contribuito a restringere il campo!

+4

Si prega di [hexdump] (http://stackoverflow.com/questions/1057572/how -can-i-get-a-hex-dump-of-a-string-in-php) la stringa dei risultati. – mario

+1

Forse dovresti usare 'mb_strtolower ($ str)' se la stringa di input è in una lingua diversa da quella del server, o se i tuoi caratteri sono un po 'esotici, come 'GB' (ho usato la larghezza massima romaji per scriverli) – Jean

+0

Ho provato a eseguire il hexpump della stringa con echo bin2hex ($ str); ma non ottengo alcun risultato da quello – fightstarr20

risposta

4

Partenza amico stampa bp_member_profile_data() funzione, fa eco:

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

si potrebbe desiderare di utilizzare bp_get_member_profile_data()

+0

Questo è esattamente quello che ho appena trovato dopo un po 'di ricerca! Grazie per questo e per tutti gli altri – fightstarr20

4

tenta di utilizzare:

mb_strtolower($str); 

Questo può funzionare.

Da PHP Manual:

Se la stringa di input è in lingua diversa quel locale del server, allora si dovrebbe utilizzare la funzione mb_strtolower().

Il prototipo di funzione è:

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

Si potrebbe provare ad aggiungere la codifica appropriata.

Il parametro di codifica è la codifica dei caratteri. Se viene omesso, verrà utilizzato il valore di codifica dei caratteri interni.

+0

principale che ho provato anche senza fortuna – fightstarr20

+2

. Come suggerito da mario, esadecimale la stringa del risultato? Forse dovresti specificare la codifica dei caratteri? – Jean

+1

Lo hai provato con il parametro UTF-8 'mb_strtolower ($ str, 'UTF-8');'? –

Problemi correlati