Die Standard -Strtolower- und Strtoupper -Funktionen unterstützen nur ASCII -Zeichen. Bei der Verarbeitung von Zeichen wie UTF-8-Codierung können sie nicht englische Zeichen nicht richtig konvertieren. Zum Beispiel:
$text = "Γει? Σου Κ?σμε"; // griechisch
echo strtoupper($text); // Die Ausgabe kann falsch sein
Zu diesem Zeitpunkt ist mb_convert_case erforderlich:
$text = "Γει? Σου Κ?σμε";
echo mb_convert_case($text, MB_CASE_UPPER, "UTF-8"); // Richtig in Großbuchstaben konvertieren
Der Funktionsprototyp von mb_convert_case lautet wie folgt:
string mb_convert_case(string $string, int $mode, ?string $encoding = null)
$ String : Die zu konvertierte Zeichenfolge.
$ modus : Conversion -Modus, hauptsächlich:
Mb_case_upper : zur Kapitalisierung konvertieren
Mb_case_lower : in Kleinbuchstaben konvertieren
Mb_case_title : Die Kapitalisierung des ersten Buchstabens jedes Wortes
$ codierung : Zeichencodierung (wie UTF-8, GBK). Wenn nicht angegeben, wird mb_internal_encoding () standardmäßig verwendet.
Oft ignorieren Entwickler die Codierungsparameter, was zu einem falschen Konvertierungsergebnis führt. Es wird empfohlen, den Code immer klar zu schreiben:
$text = "na?ve fa?ade résumé";
echo mb_convert_case($text, MB_CASE_UPPER, 'UTF-8');
Ausgabe: na? Ve fa? Ade résumé
mb_convert_case ändert den Zustand der chinesischen Zeichen nicht (da Chinesen keinen oberen und unteren Fall haben). Sie müssen jedoch immer noch die UTF-8-Codierung festlegen, ansonsten kann die Zeichenfolge abgeschnitten werden.
$text = "Hallo World";
echo mb_convert_case($text, MB_CASE_UPPER, 'UTF-8'); // Ausgabe:Hallo WORLD
Geeignet für den Umgang mit Artikeln, News -Titeln usw.:
$title = "le petit prince";
echo mb_convert_case($title, MB_CASE_TITLE, 'UTF-8'); // Le Petit Prince
Wenn sich HTML -Tags oder Entitäten im Text befinden, entfernen Sie diese bitte zuerst oder führen Sie eine entsprechende Verarbeitung durch, andernfalls wird die Ausgabe betroffen.
$name = trim($_POST['name']);
$cleaned = mb_convert_case($name, MB_CASE_TITLE, 'UTF-8');
Stellen Sie sicher, dass die Benutzereingabe ein konsistentes Format hat, wenn Sie die Schnittstelle anzeigen, insbesondere für Dokumentnamen, Titelbalken usw.
Angenommen, Sie müssen das Feld des Namens im Benutzerprofil formatieren und anzeigen und die mehrsprachigen Eingaben unterstützen:
function formatUserName($name) {
return mb_convert_case(trim($name), MB_CASE_TITLE, 'UTF-8');
}
echo formatUserName("éMILIE du chatelet"); // émilie Du Chatelet
Sie können diese Funktion auch in der API -Schnittstelle zusammenfassen und die zurückgegebenen JSON -Daten in einem einheitlichen Format standardisieren. Das Beispiel lautet wie folgt:
header('Content-Type: application/json');
$data = [
'name' => mb_convert_case('sErGiO péRez', MB_CASE_TITLE, 'UTF-8'),
'profile_url' => 'https://gitbox.net/user/sergioperez'
];
echo json_encode($data);