php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.12.2010, 08:59  
Neuer Benutzer
 
Registriert seit: 20.10.2007
Beiträge: 23
PHP-Kenntnisse:
Anfänger
phreund ist zur Zeit noch ein unbeschriebenes Blatt
Standard [Erledigt] Fehlende Umlaute im HTML

Hallo,

ich habe da ein ganz merkwürdiges Phänomen. Ich lese die Ordner eines Verzeichnis in ein Hash, mit dem Ordnernamen als Key und der stat()-Info als Value. Anschließend möchte ich die Ordnernamen in einer HTML-Tabelle anzeigen.

Das klappt prinzipiell auch, nur bei Orndner die mit einem Umlaut anfangen fehlt eben dieser Anfangsbuchstabe. Umlaute innerhalb des Namens werden korrekt dargestellt.

Die resultierende HTML-Seite ist per head-Tag auf UTF8 eingestellt. Rufe ich das Skript in einer Shell auf, erhalte ich auch die Umlaute. Nur über den Webserver aufgerufen fehlt der Umlaut am Anfang.

Hat dazu jemand eine Idee?
phreund ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 10.12.2010, 10:18  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Zitat:
Zitat von http://de3.php.net/manual/en/function.dirname.php
n some situations (I can't locate the dependencies) basename and dirname may return incorrect values if parsed string is in UTF-8.

Like, dirname("glossary/задний-фокус") will return "glossary" and basename("glossary/задний-фокус") will return "-фокус".

Quickfix is
str_replace("!$!", "", dirname(str_replace("/", "!$!/!$!", $q)))
Aber ohne Code kann man ja nur raten, ich weiss ja nicht ob du dirname() überhaupt benutzt.
cycap ist offline   Mit Zitat antworten
Alt 10.12.2010, 13:29  
Erfahrener Benutzer
 
Benutzerbild von fireweasel
 
Registriert seit: 20.03.2010
Beiträge: 474
PHP-Kenntnisse:
Fortgeschritten
fireweasel ist ein Lichtblickfireweasel ist ein Lichtblickfireweasel ist ein Lichtblickfireweasel ist ein Lichtblickfireweasel ist ein Lichtblick
fireweasel eine Nachricht über ICQ schicken fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken fireweasel eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von phreund Beitrag anzeigen
Hallo,

ich habe da ein ganz merkwürdiges Phänomen. Ich lese die Ordner eines Verzeichnis in ein Hash, mit dem Ordnernamen als Key und der stat()-Info als Value. Anschließend möchte ich die Ordnernamen in einer HTML-Tabelle anzeigen.

Das klappt prinzipiell auch, nur bei Orndner die mit einem Umlaut anfangen fehlt eben dieser Anfangsbuchstabe. Umlaute innerhalb des Namens werden korrekt dargestellt.

Die resultierende HTML-Seite ist per head-Tag auf UTF8 eingestellt. Rufe ich das Skript in einer Shell auf, erhalte ich auch die Umlaute. Nur über den Webserver aufgerufen fehlt der Umlaut am Anfang.

Hat dazu jemand eine Idee?
Was sagen var_dump() und rawurlencode()?
Das Array-Keys in PHP komische Sachen machen, kenne ich nur von Ganzzahlen.
fireweasel ist offline   Mit Zitat antworten
Alt 10.12.2010, 13:44  
Erfahrener Benutzer
 
Registriert seit: 19.06.2009
Beiträge: 837
PHP-Kenntnisse:
Fortgeschritten
Jens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nett
Standard

Zitat:
Zitat von PHP-Manual
dirname() is locale aware, so for it to see the correct directory name with multibyte character paths, the matching locale must be set using the setlocale() function.
Gruß Jens
Jens Clasen ist offline   Mit Zitat antworten
Alt 10.12.2010, 14:28  
Neuer Benutzer
 
Registriert seit: 20.10.2007
Beiträge: 23
PHP-Kenntnisse:
Anfänger
phreund ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich habe das Problem gefunden, vielen Dank Euch allen!

Es lag in der Tat am basename() und den locale-Einstellungen. In meiner Shell habe ich eine LANG=en_US.UTF8 und in der Apache-Umgebung herrscht nur eine LANG=C.

Ich habe (Debian Server) in /etc/apache2/envvars folgende Zeile hinzugefügt:

export LANG=en_US.UTF8

und schon ging alles wie gewünscht.
phreund ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit PHP Simple HTML DOM Parser berryone PHP-Fortgeschrittene 2 30.08.2010 18:00
Doppelter E-Mail versand include21 PHP Tipps 2010 3 06.05.2010 15:47
[Erledigt] PHPMailer und Umlaute Sirius PHP Tipps 2010 14 30.03.2010 15:14
Umlaute und MySQL4.1 Datenbanken 2 15.11.2009 15:28
Probleme Umlaute bei UTF-8 user0815 PHP Tipps 2009 27 11.08.2009 12:55
Umlaute mit Request richtig übertragen Lebenssonde JavaScript, Ajax und mehr 4 28.07.2009 15:10
Zeichenkodierung in PHP, HTML, DB, XML, UTF-8 und ISO-8859-1, reguläre Ausdrücke christophM PHP Tipps 2009 6 07.06.2009 10:28
HTML PHP Umlaute wannebeme PHP Tipps 2009 1 21.05.2009 12:08
PHP: HTML E-Mail versenden kampfnickel PHP Tipps 2008 6 22.08.2007 13:32
Variable und komplette HTML Datei chrisonline PHP Tipps 2007 3 24.05.2007 15:30
<if> </if> in einer HTML Datei fuer Templ PHP-Fortgeschrittene 6 03.11.2005 12:05
Umlaute in HTML - konforme Form umwandeln Stümper PHP Tipps 2005 19 30.05.2005 08:42
IMAP: Bild(er) in HTML Part richtig darstellen PHP-Fortgeschrittene 1 07.10.2004 12:21
{$varname.optelement} mit preg_match aus HTML extrahieren PHP Tipps 2004 0 11.09.2004 04:13
Validitor (HTML 4.01) = Schwachsinn? Filewalker Off-Topic Diskussionen 19 03.08.2004 15:27

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
html umlaute anzeigen, http://www.php.de/php-fortgeschrittene/74923-erledigt-fehlende-umlaute-im-html.html, umlaute html ordner, html umlaute head, fehlende umlaute in datenbank, umlaute für html anzeigen, php basename locale multi-byte, php html umlaute aber kein html, php fehlende umlaute, php großer umlaut am anfang, php sonderzeichen in ordner, html umlaute, php umlaute head, phpmailer umlaute, verziechnisse umlaute php, e-mail php from fehlt am anfang, umlaut fehle bei html, mailversand php umlaute, ist ein anfangsbuchstabe auch ein umlaut, php umlaute zu html

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:17 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum