Text mit php auslesen und Großschreiben/ Umlaute

Hallo Leute,

ich würde gern einen Text aus der Datenbank auslesen und anschließend in Großbuchstaben umwandeln.
Leider hab ich da mit den Sonderzeichen ein Problem.

Text:
allgemeiner Überblick

Ausgelesen wird so:
echo (strtoupper($array_text[‚1‘]);

Der Text wird so augegeben:
ALLGEMEINER ÜBERBLICK

anstatt diesen:

ALLGEMEINER ÜBERBLICK

Was kann ich da machen?

Danke vielmals für eure AW,
Chris

probier mal html-entity-decode , weil das sind html equivalente
http://www.php.net/manual/de/function.html-entity-de…

oder auch
http://www.php.net/manual/de/function.htmlspecialcha…

Danke,

ich hab jetzt beides versucht. Im Normalfall wandelt dreamweaver die Buchstaben um, aber in diesen Fall funktioniert das nicht.
Also liefert, dass das selbe ungewollte Ergebnis.

$topic = allgemeiner Überblick

echo (strtoupper($topic ))
oder
echo (strtoupper( htmlspecialchars($topic)))

Ergebnis:
ALLGEMEINER ÜBERBLICK

Keine Ahnung wieso das so ist?

ohne strtoupper oder htmlspecialchars

wird echo $topic zu

allgemeiner Überblick

Hab schon 10 verschiedene Möglichkeiten versucht ohne Erfolg.

Lg,
Chris

  1. wie TechPech schon geschrieben hat, brauchst Du htmlspecialchars_decode() oder html_entity_decode()

  2. selbst dann wirds meistens nicht funktioniewren, da strtoupper() in der Regel ein Problem mit Umlauten hat (Ländercode!).

  3. daher solltest Du Dein Problem am besten per CSS lösen: text-transform: uppercase;

Hallo Dietmar,

danke so funktioniert´s.
Eine Frage noch würde das auch bei anderen Sprachen (Russisch, Chinesisch,…) mit anderen Sonderzeichen funktionieren?

Wünsch dir noch einen schönen Abend,
Chris

Der Vorschlag von Dietmar es mit CSS Transform zu lösen ist eine gute Idee. Aber dein Problem mit den Umlauten liegt nicht in der strtoupper Funktion von PHP.

Ich habe diese Funktion schon an verdammt vielen Stellen eingesetzt und nie ein Problem mit Umlauten gehabt.

Schau dir mal lieber deine Kodierungen an (ANSI, UTF-8, etc). Da entstehen gerne mal solche Probleme.

Beispiel:

$str = "allgemeiner Überblick";
echo $str."
";
echo strtoupper($str);

Wird dies in einer (ANSI Datei) ISO-8859-1 gespeichert, ist die Ausgabe korrekt.
Speicherst du die Datei als UTF-8 (mit oder ohne BOM (ByteOrderMask)) ab, so erhält man die im Web oft bekannten Kodierungsfehler bei Umlauten. Es ist sowieso immer eine gute Idee in PHP einen speziellen Header an den Browser/Client zu senden und diesem mitzuteilen, welche Kodierung man einsetzt.