php.de

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

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.12.2011, 12:57  
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

Vorweg noch was zum (Ursprungs-)Thema: Die schon erwähnte "intl"-Erweiterung besitzt in den neueren Versionen eine Klasse Transliterator, mit der man bspw. deutsche Umlaute nach ASCII wandeln kann. Wenn ich die Anleitung richtig verstanden habe, kann sie sowohl mit "decomposed" als auch mit "precomposed" Zeichen umgehen. Dummerweise macht sie aus 'ä' nur ein 'a' und kein 'ae'. Auch hat die Konvertierung 'Any-ASCII' bei mir nicht funktioniert (es lies sich kein Transliterator-Objekt damit erzeugen), 'Latin-ASCII' dagegen schon.

Zitat:
Zitat von mermshaus Beitrag anzeigen
Hm, heißt das, ich müsste in einem „Eingabe besteht aus Buchstaben“-Test nicht nur auf General Category... L prüfen, sondern zusätzlich noch auf M, wenn ich auch „Buchstaben mit Diakritika“ erwischen will, die nur in NFD vorliegen?
Sieht so aus. Man muss aber aufpassen, diese kombinierenden Zeichen nur mitzuzählen, wenn sie auf Buchstaben folgen. Folgen sie auf ein Non-Breaking-Space (\x{a0}), dann stellen sie sich lediglich selbst dar. Ansonsten scheinen sie quasi "Nicht-Zeichen" zu sein.

Zitat:
Zitat von mermshaus Beitrag anzeigen
Ist das ein realistisches Problem?
Pffft. Der Erbsenzähler in mir sagt: Ja. Immer, wenn Unicode-kodierte Texte aus fremden Quellen kommen, für die du nicht garantieren kannst, dass ...
* alle "precomposable" Buchstaben "precomposed" sind oder
* nur Buchstaben enthalten sind, die "precomposable" sind.

... oder (einfacher) wenn dieser PCRE anschlägt:
PHP-Code:
preg_match('/(?<=\p{L})\p{M}/u'$utf8_input); 
In der Praxis werden es, wie immer, (fast) alle ignorieren.

Andererseits ist das hier ein "Feature"[0] der Dateisystem-Unterstützung von PHP. Da diese unter Windows gar nicht Unicode-fähig ist und unter Unix-(POSIX?)-APIs anscheinend einfach die Pfadnamen weiterleitet, anstatt sie zu vereinheitlichen, darf man sich auf der Anwendungsebene damit herumschlagen.

--
[0] Fehler darf man ja nicht sagen, das ist alles "by design" ...

Geändert von fireweasel (11.12.2011 um 13:24 Uhr).
fireweasel ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 11.12.2011, 14:05  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Eventuell hier: http://www.unicode.org/faq/char_combmark.html#13

Anachronismus ist vielleicht ein zu hartes Wort. Eine Altlast, die wir auf ewig (wegen Abwärtskompatibilität) mitschleifen müssen, trifft es besser.
Ich kann das nicht nachvollziehen. Ein Umlaut ist ein echter Buchstabe, keine besondere Betonung oder so. Unicode wurde dafür geschaffen, alle Zeichen Problemlos abbilden zu können, selbst Ligaturen und Mediävalziffern werden als eigener Unicode geführt. Umlaute aus zwei Zeichen zu kombinieren ist absolut inkonsequent. Jedenfalls für die deutsche Sprache.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 11.12.2011, 15:35  
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 nikosch Beitrag anzeigen
Ich kann das nicht nachvollziehen. Ein Umlaut ist ein echter Buchstabe, keine besondere Betonung oder so.
Nein (deutsche) Umlaute sind gewöhnliche lateinische Buchstaben, versehen mit einem speziellen Zeichen ("Diärese" e.t.c.). Sprachhistorisch sind sie aus Ligaturen, also Kombinationen aus mehreren Buchstaben, entstanden, das 'ä' bspw. aus der ae-Ligatur. Das sie als "gewöhnliche" Buchstaben betrachtet werden, liegt daran, dass man sich als Muttersprachler daran gewöhnt hat.
Im asiatischen Raum, stellen deutsche Umlaute und ß regelmäßig eine "besondere Zeichengattung" dar, wie man an kreativ gestalteten Bedienungsanleitung immer wieder sehen kann.

Aber wir sollten bei der technische Komponente bleiben ...

Zitat:
Unicode wurde dafür geschaffen, alle Zeichen Problemlos abbilden zu können, ...
Wenn man Kombinationen aus lateinischen Buchstaben und diese modifizierende Zeichen zulässt, kann man mehr Zeichen aufnehmen, als wenn man für jede gewünschte Kombination einen extra Codepoint reserviert.

Mir scheint dass sie den Anspruch "alle Zeichen aufzunehmen" irgendwann aufgegeben und durch das Motto ersetzt: "Wir schauen, bis sich genügend Leute finden, die wollen, dass eine Gruppe von Zeichen aufgenommen werden soll" (siehe Smileys, Emoji usw.). Zugegeben, es ist auch schwer, eine allgemein akzeptierte Definition von "Zeichen" zu erschaffen. Mir fallen da bspw. gerade Verkehrszeichen ein ...

Zitat:
... selbst Ligaturen und Mediävalziffern werden als eigener Unicode geführt.
Was unsinnig ist, weil Ligaturen kein Problem der Zeichenkodierung sondern eines der Zeichendarstellung sind. Gleiches gilt für Medieval-Ziffern: Entweder hat ein Font solche Ziffern oder nicht. Etwas anderes wären bspw. die römischen Zahlzeichen.

Zitat:
Umlaute aus zwei Zeichen zu kombinieren ist absolut inkonsequent.
Erstmal ist das die vorgeschriebene Marschrichtung für die Aufnahme weiterer Zeichen. Das ist verständlich, weil man nicht für alle beliebigen Kombinationen Platz frei halten will oder haben wird. Außerdem macht jedes neue Zeichen mit diakritischem Anbau die Suche und Sortierung komplexer (Die Tabellen für die "Collation-Sequences" werden noch größer).

Was die Inkonsequenz betrifft, bin ich deiner Meinung. Aber wenn man sich Überarbeitung für Überarbeitung des Unicode-"Standards" ansieht, ist da konsequente Inkonsequenz das erste, an was man sich gewöhnen muss. Menschliche Schrift(sprache) in Regeln zu pressen zu wollen ist halt kompliziert.

Zitat:
Jedenfalls für die deutsche Sprache.
Ehrlich gesagt, sind mir deutsche Befindlichkeiten dabei egal. Die waren in ASCII nicht gewahrt und bei den 8-Bit-Zeichensätzen hatten die Deutsch(sprachig)en halt Glück, dass mindestens einer dabei war, der ihren Ansprüchen genügte und auch noch so Sachen wie Groß-Kleinschreibung mit einem Bitflipping erledigt war. Das waren halt die glücklichen 1980-er (und frühen 1990-er) Jahre ...

Dass ein Zeichen mehr als ein Byte sein kann, haben wir gelernt, da sollte es nicht schwerfallen auch zu akzeptieren, dass ein Zeichen aus mehr als einen Codepoint zusammengesetzt sein kann.

Geändert von fireweasel (12.12.2011 um 13:21 Uhr).
fireweasel ist offline   Mit Zitat antworten
Alt 11.12.2011, 15:39  
Neuer Benutzer
 
Registriert seit: 08.12.2011
Beiträge: 4
PHP-Kenntnisse:
Fortgeschritten
dazlious befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von elise Beitrag anzeigen
Durchgetestet:

Und hier:
http://www.techques.com/question/1-5...-not,-what-is?
kannst du den Ansatz erkennen.

ein ä wäre: "a\314\210"

Ä with A\314\210
Ö with O\314\210
Ü with U\314\210
ä with a\314\210
ö with o\314\210
ü with u\314\210

Erweitere dein Array um die entsprechenden Alternativen.

Dann funktioniert die Umbennenung einwandfrei.
Ich habe leider heute keinen Mac da, aber ich werde es am Montag testen und mich dann melden, ob es funktioniert hat oder aber wo es noch hakt

Kannst du mir noch sagen, wo du die Kodierung gefunden hast (A\314\210, usw)?

Brauch nämlich noch ein ß

Vielen lieben Dank schon mal für die Antwort, kann morgen kaum abwarten
dazlious ist offline   Mit Zitat antworten
Alt 12.12.2011, 07:39  
Erfahrener Benutzer
 
Registriert seit: 26.12.2010
Beiträge: 175
PHP-Kenntnisse:
Anfänger
elise befindet sich auf einem aufstrebenden Ast
Standard

Das Eszett hat nichts mit diesem Format zutun.
Entweder du nimmst die utf8-encode-Zeile raus und benutzt einfach 'ß', oder eben vorher einen utf8-encode über 'ß'.
__________________
OSL♥
elise ist offline   Mit Zitat antworten
Alt 12.12.2011, 13:06  
Neuer Benutzer
 
Registriert seit: 08.12.2011
Beiträge: 4
PHP-Kenntnisse:
Fortgeschritten
dazlious befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von elise Beitrag anzeigen
Durchgetestet:

Und hier:
http://www.techques.com/question/1-5...-not,-what-is?
kannst du den Ansatz erkennen.

ein ä wäre: "a\314\210"

Ä with A\314\210
Ö with O\314\210
Ü with U\314\210
ä with a\314\210
ö with o\314\210
ü with u\314\210

Erweitere dein Array um die entsprechenden Alternativen.

Dann funktioniert die Umbennenung einwandfrei.
Es hat einwandfrei funktioniert. Vielen lieben Dank!

ß hat er so angenommen.

Endlich ist auch das Problem gelöst!
dazlious 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
Umlaute ersetzen in PHPEclipse Hekotec Off-Topic Diskussionen 2 03.03.2011 22:05
[Erledigt] Umlaute ersetzen preg_replace - funktioniert nicht robat PHP Tipps 2010 27 05.04.2010 00:29
[Erledigt] PHPMailer und Umlaute Sirius PHP Tipps 2010 14 30.03.2010 15:14
Umlaute ersetzen? floking PHP Tipps 2010 11 26.02.2010 14:52
PHP Skript - Umlaute ersetzen Rubio PHP Tipps 2010 1 01.02.2010 22:51
Umlaute und MySQL4.1 Datenbanken 2 15.11.2009 15:28
[Erledigt] Leereichen und Umlaute ersetzen thiagojonas PHP Tipps 2009 13 06.07.2009 15:03
[Erledigt] Umlaute ersetzen funktioniert nicht richtig BlackSpirit PHP Tipps 2009 19 20.04.2009 12:04
Umlaute und str_replace MatzeMuc86 PHP Tipps 2008 20 22.10.2008 20:41
Umlaute in Datenbank Eldra PHP Tipps 2008 3 14.05.2008 07:11
geschachtelten array sortieren, enter ersetzen und umlaute moose PHP Tipps 2006 5 20.04.2006 12:24
Umlaute in Texte ersetzen! wiegia086 PHP Tipps 2006 2 20.04.2006 08:58
Umlaute suchen und ersetzen NetLook PHP Tipps 2006 6 18.04.2006 16:49
Umlaute automatisch ersetzen PHP Tipps 2005 5 31.03.2005 17:34
Reguläre Ausdrücke beim suchen und ersetzen Off-Topic Diskussionen 5 05.07.2004 15:35

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php preg_match ß eclipse, \umlaute ersetzen\ reguläre, rename unicode mac, rename \\314\\210 macosx, bei buchstaben kombinationen den umlaut ersetzten, alle umlaute ersetzen mac, ä = a\\314\\210 unicode, rename ersetzen sonderzeichen %{, php umlaute ersetzen alle kombinationen, php decomposed unicode, ersetze utf diärese, u\\#314\\#210, ä with a\\314\\210 ö with o\\314\\210 ü with u\\314\\210 ä with a\\314\\210 ö with o\\314\\210 ü with u, rename alle umlaute ersetzen, os x umlaute ersetzen

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