ucwords strtolower primera minusculas mb_ucfirst mb_strtoupper mayuscula camelcase acentos php character-encoding

php - strtolower - Función ucfirst() para codificaciones de caracteres multibyte



ucwords php (9)

He preguntado acerca de la función strtolower . Pero cuando se usan caracteres extranjeros, no se convierten en mayúsculas, así que debo usar:

mb_strtolower($a,"utf8");

Pero, ¿qué puedo hacer si quiero usar la función ucfirst() ? No he encontrado ninguna función similar, donde puedo configurar el tipo de codificación.


Esta es una solución más concisa, aunque es bastante similar a la función de ucwords :

$final_string = mb_convert_case($your_string, MB_CASE_TITLE, ''UTF-8'');

Si necesita usar mayúsculas en una cadena, es la mejor solución.


Este es el más corto que puedo averiguar ... extraer la primera palabra, aplicar MB_CASE_TITLE y reemplazarlo con el original.

function mb_ucfirst($str=''''){ $str2=explode(" ",$str); return str_replace($str2[0],mb_convert_case($str2[0], MB_CASE_TITLE, "UTF-8"),$str); }


Estoy usando cp1250 en la página web, y para Ú mb_ucfirst no funciona, tan poca actualización:

function mb_ucfirst($string) { $main_encoding = "cp1250"; $inner_encoding = "utf-8"; $string = iconv($main_encoding, $inner_encoding , $string ); $strlen = mb_strlen($string); $firstChar = mb_substr($string, 0, 1, $inner_encoding); $then = mb_substr($string, 1, $strlen - 1, $inner_encoding); return $string = iconv($inner_encoding, $main_encoding , mb_strtoupper($firstChar, $inner_encoding) . $then ); }


No hay mb_ucfirst función mb_ucfirst , como ya has notado. Puedes falsificar un mb_ucfirst con dos mb_substr :

function mb_ucfirst($string, $encoding) { $strlen = mb_strlen($string, $encoding); $firstChar = mb_substr($string, 0, 1, $encoding); $then = mb_substr($string, 1, $strlen - 1, $encoding); return mb_strtoupper($firstChar, $encoding) . $then; }


Ve con este compañero:

$text = "ρασąŽUOlas ΔρασΥκελίζει niekπέΥąΥžuoρ kυνόσ"; $ucfirsted_text = mb_convert_case(mb_substr($text,0,1), MB_CASE_TITLE, "UTF-8").mb_substr($text,1); echo $ucfirsted_text; //will print you "ΡασąŽUOlas ΔρασΥκελίζει niekπέΥąΥžuoρ kυνόσ"


Versión de trabajo (unidad probada) para PHP moderno:

<?php function mb_ucfirst($value) { $firstLetter = mb_strtoupper(mb_substr($value, 0, 1, ''UTF-8''), ''UTF-8''); $otherLetters = mb_substr($value, 1, null, ''UTF-8''); return $firstLetter . $otherLetters; } echo mb_ucfirst(''żółta źółć''); var_dump(''Żółta źółć'' === mb_ucfirst(''żółta źółć''));


/*This worked correctly for me*/ function mb_ucfirst($string, $encoding=''UTF-8'') { $firstChar = mb_substr($string, 0, 1, $encoding); $then = mb_substr($string, 1, mb_strlen($string, $encoding)-1, $encoding); return mb_strtoupper($firstChar, $encoding) . $then; }


function mb_ucfirst($string) { return mb_strtoupper(mb_substr($string, 0, 1)).mb_strtolower(mb_substr($string, 1)); }


if (!function_exists(''mb_ucfirst'')) { function mb_ucfirst($value) { return mb_strtoupper(mb_substr($value, 0, 1)) . mb_substr($value, 1); } }