php.de

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

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.09.2011, 09:02  
Neuer Benutzer
 
Registriert seit: 22.09.2011
Beiträge: 3
PHP-Kenntnisse:
Fortgeschritten
rolzan befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Sehr seltsames Problem mit der ctype Funktion und Umlauten

Hallo,

ich habe hier ein sehr seltsames Problem mit der ctype Funktion:

Ich überprüfe per ctype ob eine Variable nur Buchstaben enthält.
PHP-Code:
ctype_alpha ($tmp_ort
Zuerst wurde gar kein Umlaut erkannt, nach dem setzen der Locale erkennt er nun das ü. Enthält die Variable also ein ü wird TRUE zurückgegeben.
PHP-Code:
setlocale (LC_ALL'de_DE.UTF-8'); 
Ö, ä und ß werden allerdings nach wie vor nicht erkannt, ctype gibt also FALSE zurück.

Ich denke die Locale ist schon richtig gesetzt, da das ü ja erkannt wird. Wäre die Locale falsch, dürfte doch das ü auch nicht erkannt werden, oder liege ich da falsch?

Vielleicht hat jemand nen guten Tipp oder Hinweis woran das liegen kann.

Vielen Dank vorab
Viele Grüße
Rolf
rolzan ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 22.09.2011, 09:33  
Erfahrener Benutzer
 
Benutzerbild von jspit
 
Registriert seit: 19.08.2011
Beiträge: 701
PHP-Kenntnisse:
Anfänger
jspit wird schon bald berühmt werden
Standard

Also bei mir nur unter Linux, dort hilft:
PHP-Code:
setlocale(LC_ALL"de_DE");
$r ctype_alpha("eintextöüäÄÖÜß"); 
jspit ist offline   Mit Zitat antworten
Alt 22.09.2011, 10:46  
Neuer Benutzer
 
Registriert seit: 22.09.2011
Beiträge: 3
PHP-Kenntnisse:
Fortgeschritten
rolzan befindet sich auf einem aufstrebenden Ast
Standard

Vielen Dank für den Hinweis.
Das hatte ich allerdings auch schon versucht, damit wird das ü dann aber auch nicht mehr erkannt, wie mit den restlichen de-locales die ich bisher ausprobiert habe.

Viele Grüße
Rolf
rolzan ist offline   Mit Zitat antworten
Alt 22.09.2011, 15:41  
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

Anmerkung zu Multipostings
http://phpforum.de/forum/showthread.php?t=265415

Gruß Jens
Jens Clasen ist offline   Mit Zitat antworten
Alt 22.09.2011, 15:52  
Erfahrener Benutzer
 
Benutzerbild von mermshaus
 
Registriert seit: 14.06.2009
Beiträge: 1.731
PHP-Kenntnisse:
Fortgeschritten
mermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz sein
Standard

Alternative: UTF-8 und preg_*-Funktionen mit:

- http://www.php.net/manual/en/regexp....ce.unicode.php

PHP-Code:
<?php

$p 
'/^\p{L}+$/u';

var_dump(preg_match($p'äöüß'),
         
preg_match($p'äöüß 123'));
__________________
Blog | Buch | Kaloa
mermshaus ist offline   Mit Zitat antworten
Alt 22.09.2011, 16:04  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

netter Codeschnipsel ...

PHP sagt bei mir dazu : Mecker Blabla .. erstellt ohne Support for /x /p /u ...^^

wird wohl besser werden mit 5.3
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 22.09.2011, 16:35  
Erfahrener Benutzer
 
Registriert seit: 03.08.2010
Beiträge: 1.143
PHP-Kenntnisse:
Anfänger
hausl wird schon bald berühmt werdenhausl wird schon bald berühmt werden
Standard

Kann man auch alternativen angeben, bei mir hilft

PHP-Code:
setlocale(LC_ALL'German_Germany.1252''de_DE''de''GERMAN''ge'); 
Zitat:
Ist locale ein Array oder folgen weitere Parameter, dann wird jedes Arrayelement bzw. jeder Parameter versucht als neuer Locale-Wert zu setzen, bis es gelingt. Dies ist dann sinnvoll, wenn eine Locale-Angabe auf unterschiedlichen Systemen unter verschiedenen Namen bekannt ist oder auch als Fallback für eine eventuell nicht vorhandene Locale-Angabe.
Erstes Argument brauch ich lokal (Windows), hingegen live das "de_DE", da läuft eine debian kiste glaub ich. Die anderen sind nur sicherheitshalber .

Kannst es dir ja testhalber augeben lassen ob/welches genommen wurde.. (weiter unten bei den Beispielen, etwas von mir angepaßt.)

Zitat:
PHP-Code:
/* versuche verschiedene mögliche locale Namen für Deutsch ab PHP 4.3.0 */
$loc_de setlocale (LC_ALL'German_Germany.1252''de_DE@euro''de_DE''de''ge''deu_deu''GERMAN');
echo 
"Preferred locale for german on this system is " $loc_de
LG

Geändert von hausl (22.09.2011 um 16:43 Uhr).
hausl ist offline   Mit Zitat antworten
Alt 23.09.2011, 09:00  
Neuer Benutzer
 
Registriert seit: 22.09.2011
Beiträge: 3
PHP-Kenntnisse:
Fortgeschritten
rolzan befindet sich auf einem aufstrebenden Ast
Standard

Hallo zusammen,

@hausl:
Das habe ich schon getestet, de_DE.UTF-8 wird genommen.

@memshaus:
Habs nun mit deinem Codeschnipsel gelöst, funktioniert tadellos - vielen Dank.

Ich hätt halt aus Performancegründen lieber ctype eingesetzt.

Viele Grüße
Rolf
rolzan ist offline   Mit Zitat antworten
Alt 23.09.2011, 09:30  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

laut php-Manual / Bug-Liste soll das ein Fehler der Systemkonfiguration sein ... angeblich würde ctype sich zur Feststellung auf die eingestellte Locale verlassen ... merkwürdig nur, dass er zumindest bei uns die mit setLocale gesetzte ignoriert - denn ich kann mittels gesetzter locale die Monatsnamen der Date-Funktion eindeutschen .. aber die Umlaute sind für ihn trotzdem in jedem Fall "FALSE" bei ctype_alpha
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 23.09.2011, 15:50  
Erfahrener Benutzer
 
Benutzerbild von mermshaus
 
Registriert seit: 14.06.2009
Beiträge: 1.731
PHP-Kenntnisse:
Fortgeschritten
mermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz sein
Standard

Vielleicht noch der Hinweis, dass der reguläre Ausdruck jeden als Buchstaben markierten Unicode-Character in jeder in Unicode enthaltenen Sprache matcht. Das ist natürlich nicht dasselbe wie ein a-zäöüß.

Performance-Einwände bitte nach Möglichkeit begründen.
__________________
Blog | Buch | Kaloa
mermshaus 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 Funktion chr1s-eg PHP Einsteiger 29 01.02.2011 07:54
Problem mit abstrakter Funktion und Vererbung automatix PHP-Fortgeschrittene 9 29.12.2010 14:05
[Erledigt] Problem mit funktion lord_icon PHP Tipps 2010 13 25.02.2010 08:33
Problem mit Umlauten und in_array arkturus PHP Tipps 2009 5 03.09.2009 21:27
[Erledigt] Problem mit der Funktion fopen() robat PHP Tipps 2008 6 23.11.2008 12:29
[Erledigt] Problem mit Umlauten äüöß. litterauspirna PHP Tipps 2008 9 16.10.2008 11:52
[Erledigt] Problem bei einfacher Funktion dänni PHP Tipps 2008 7 08.10.2008 08:57
Problem mit Umlauten flflfl PHP Tipps 2006 2 06.09.2006 16:53
problem mit einer Funktion LP PHP Tipps 2006 9 27.06.2006 12:56
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
problem mit der "die" funktion aircrash PHP Tipps 2005 2 08.01.2005 19:44
Problem mit Umsetzung einer Funktion Datenbanken 1 20.12.2004 14:37
Problem mit Umlauten in einer E-card/Benachrichtigungsmail PHP Tipps 2004-2 2 19.11.2004 11:29
problem mit update funktion aircrash PHP Tipps 2004-2 3 17.11.2004 16:55
Problem mit mail() - Funktion PHP Tipps 2004 2 06.07.2004 18:21

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
ctype und umlaute, ctype_alnum umlaute, ctype umlaute, ctype_alnum mit umlauten, ctype php, php ctype, setlocale (lc_all, \'de_de@euro erkennt kein ß, setlocale ctype_alpha, debian setlocale de utf8, ctype erkennt umlaute nicht, umlaut ctype, php setlocale windows ctype_alnum, php ctype sicherheit, ctype_alnum setlocale, ctype_alnum() und ß php, ctype mit ulauten, ctype_alnum alle utf-8 zeichen, php ctype_alpha setlocale, php ctype umlaut, php ctype utf-8 ohne local

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:09 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