Smarty "kapitalisieren" modifier... immer profitiert "L"? ... und "P"?
Ganz einfach: ich bin mit Smarty und die |capitalize
modifier. Es funktioniert gut, aber wenn ich den pass jedes Wort mit l
in es, es, nutzt es, auch wenn es nicht am Anfang des Wortes.
Was, warum?
BEARBEITEN: Gleiche passiert mit p
.
Test:
{"abcdefghijklmnopqrstuvwxyz"|capitalize}
{"aaal aala alaa laaa"|capitalize}
{"aaap aapa apaa paaa"|capitalize}
Ausgabe:
AbcdefghijkLmnoPqrstuvwxyz
AaaL AaLa ALaa Laaa
AaaP AaPa APaa Paaa
Du musst angemeldet sein, um einen Kommentar abzugeben.
Konnte man auch mit PHP ucfirst Funktion
Dadurch wird
Smarty in Erster Linie stützt sich auf
ucfirst()
die betroffen ist von der aktuellen locale-set in PHP. Ich habe nicht in der Lage war, Informationen zu finden, wie genau dies wirkt sich auf die groß-und Kleinschreibung Funktionen (ucfirst, strtolower, strtoupper, etc), aber Sie können versuchen Sie, Ihr Gebietsschema zuen_US.UTF-8
(was funktioniert auf meinem server) und sehen, wie das wirkt sich auf die Ausgabe.view locale:
Gebietsschema ändern:
Update
Einige der Forschung führt zu wenigen Archive, in denen die Kunden Modifizierer geschrieben werden, um entweder wählen Sie die lokale für den Modifizierer oder eine benutzerdefinierte Funktion zum festlegen des Gebietsschemas aus der template-Datei.
Quelle 1
Quelle 2
ich habe nicht in der Lage zu reproduzieren. Könnte es sein, die schriftart, die Sie verwenden (einige Schwanz diel
)? Haben Sie code-Beispiele?Mit Smarty v2
Ausgänge
setlocale(LC_CTYPE, NULL);
ucfirst
richtig funktioniert, aber|capitalize
ist immer noch merkwürdig.capitalize
modifier, Sie könnte verwendenucfirst
als Ihre Modifikator{$var|ucfirst}
.eval()
zurücksetzen würde das Gebietsschema, die Smarty tun könnte, um zu verarbeiten das kompilierte template. Sie könnten versuchen, festlegen der locale-Einstellung in der Vorlage zu Debuggen und zu sehen, ob das ist, was passiert ist.{php}setlocale(LC_TYPE, "en_US.UTF-8");{/php}