working una saber primera poner not mayusculas mayuscula letra first como cadenas php mysql

php - una - ¿Cómo se muestra la primera letra en mayúscula?



string en python (7)

Tengo fname y lname en mi base de datos, y un nombre podría almacenarse como JOHN DOE o john DOE o JoHN dOE, pero en última instancia quiero mostrarlo como John Doe

fname siendo John y lname siendo Doe


La combinación de funciones taquigráficas PHP strtolower y ucwords resuelve su problema:

function ucname($f, $l) { return ucwords(strtolower($f." ".$l)); } echo ucname($fname, $lname);

En una nota lateral, tenga en cuenta que puede hacer ese tipo de embellecimiento de datos en muchas etapas diferentes:

  1. antes de la inserción, en su aplicación
  2. durante la inserción, con funciones de cadena en la consulta de inserción / actualización de SQL
  3. durante la extracción, con funciones de cadena en la consulta de selección de SQL
  4. después de la extracción, en su aplicación

Cambie los nombres para bajar y luego agregue (''A'' - ''a'') a la primera letra de fname & lname.


No estoy seguro de dónde y cómo desea mostrarlo, pero si está en una página web, puede intentar simplemente modificar la pantalla usando CSS. Prueba agregar:

text-transform:capitalize;

a la regla relevante, como esta:

.name { text-transform:capitalize;}

si pones el nombre en un div o span con class = "name". Por supuesto, esto no alterará en modo alguno la entrada de la base de datos, pero no estaba claro cuál era preferible.


Para nombres simples, esto funcionará. Tenga cuidado con los casos especiales (como "Ronald McDonald" en el siguiente ejemplo).

En SQL Server:

SELECT --step 2: combine broken parts into a final name NAME_PARTS.FNAME_INITIAL + NAME_PARTS.REST_OF_FNAME AS FNAME ,NAME_PARTS.LNAME_INITIAL + NAME_PARTS.REST_OF_LNAME AS LNAME FROM ( --step 1: break name into 1st letter and "everything else" SELECT UPPER(SUBSTRING(TEST.FNAME,1,1)) AS FNAME_INITIAL ,UPPER(SUBSTRING(TEST.LNAME,1,1)) AS LNAME_INITIAL ,LOWER(SUBSTRING(TEST.FNAME,2,LEN(TEST.FNAME))) AS REST_OF_FNAME ,LOWER(SUBSTRING(TEST.LNAME,2,LEN(TEST.LNAME))) AS REST_OF_LNAME FROM ( --step 0: generate some test data SELECT ''john'' AS FNAME, ''doe'' as LNAME UNION SELECT ''SUZY'', ''SMITH'' UNION SELECT ''bIlLy'', ''BOb'' UNION SELECT ''RoNALD'', ''McDonald'' UNION SELECT ''Edward'', NULL UNION SELECT NULL, ''Jones'' ) TEST ) NAME_PARTS

En Oracle

SELECT --step 2: combine broken parts into a final name NAME_PARTS.FNAME_INITIAL || NAME_PARTS.REST_OF_FNAME AS FNAME ,NAME_PARTS.LNAME_INITIAL || NAME_PARTS.REST_OF_LNAME AS LNAME FROM ( --step 1: break name into 1st letter and "everything else" SELECT UPPER(SUBSTR(TEST.FNAME,1,1)) AS FNAME_INITIAL ,UPPER(SUBSTR(TEST.LNAME,1,1)) AS LNAME_INITIAL ,LOWER(SUBSTR(TEST.FNAME,2,LENGTH(TEST.FNAME))) AS REST_OF_FNAME ,LOWER(SUBSTR(TEST.LNAME,2,LENGTH(TEST.LNAME))) AS REST_OF_LNAME FROM ( --step 0: generate some test data SELECT ''john'' AS FNAME, ''doe'' as LNAME FROM DUAL UNION SELECT ''SUZY'', ''SMITH'' FROM DUAL UNION SELECT ''bIlLy'', ''BOb'' FROM DUAL UNION SELECT ''RoNALD'', ''McDonald'' FROM DUAL UNION SELECT ''Edward'', NULL FROM DUAL UNION SELECT NULL, ''Jones'' FROM DUAL ) TEST ) NAME_PARTS


Tenga en cuenta que hay otros formatos de capitalización, como John McDoe, John D''Oe, John de O y John van den Doe.


Un ejemplo de php.net :

$bar = ''HELLO WORLD!''; $bar = ucfirst($bar); // HELLO WORLD! $bar = ucfirst(strtolower($bar)); // Hello world!

Tenga en cuenta las notas sobre los locales, aunque ...


viendo que está etiquetado PHP:
ya sea

string ucfirst ( string $str );

a la primera letra mayúscula de la primera palabra

o

string ucwords ( string $str );

para mayúscula la primera letra de cada palabra

es posible que desee utilizar los en combinación con

string strtolower ( string $str );

para normalizar todos los nombres primero en minúsculas.