php.de

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

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.11.2008, 14:08  
Neuer Benutzer
 
Registriert seit: 26.11.2008
Beiträge: 14
dazze befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Umlaut-Varianten eines Strings ermitteln

Hallo,
für eine Zahlungseingangsprüfung habe ich versucht eine Funktion zu schreiben die mir aus einem String alle möglichen Kombinationen nach Ersetzen der deutschen Umlaute als Array zurückgibt. Bei CSV Export-Daten die Banken bereitstellen, sind oft deutsche Umlaute entfernt bzw ersetzt. Die Kundendaten, mit denen ich den Abgleich vornehmen will, sind aber mit Umlauten in meiner Datenbasis vorhanden.

Mal ein Beispiel.

Ich habe einen Kundendatensatz für "Müller".

Der Bankexport liefert mir nun einen Datensatz "Mueller" (oder wie auch oft vorkommt "Muller")

Ich bräuchte eine Funktion die mir alle Variationen dieses Namens wiedergibt.

Für den String "ABOBUB" beispielsweise gibt es ja schon X mögliche Varianten

ÄBOBUB
ABÖBUB
ABOBÜB
ÄBÖBUB
ÄBOBÜB
....

Hat jemand ne Idee wie ich sowas am besten umsetze?
dazze ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 26.11.2008, 14:10  
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

Willkommen.

Zitat:
Ich bräuchte eine Funktion die mir alle Variationen dieses Namens wiedergibt.
Um dann was mit den zurückgerechneten Bezeichnern zu machen?
__________________
--
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 26.11.2008, 14:17  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Erstmal zwei Gedanken zum Thema, die Dir (fürchte ich) nicht weiterhelfen werden (aber vielleicht ja doch, vielleicht wenigstens eine Richtung).
a) Frag mal bei der Bank nach, ob sie die Probleme selbst auch haben und durch menschliche Ressourcen lösen (d.h. die Mitarbeiter wissen, was sie eingeben müssen). Wenn nicht, ist "nur" der Export kaputt. Dieses Wissen nutzt Dir allerdings nur etwas, wenn Du auf den Vorgang Einfluss hast.
b) Wenn man in MySQL (es gubt auch andere Datenbanken, bei denen man ähnliches machen kann) eine Tabelle/ein Feld zum Beispiel mit der Collation latin1_german2_ci anlegt (dafür sorgt, dass diese Collation beim Vergleich benutzt wird), findet ein x='Mueller" auch einen Datensatz mit x='Müller'. Wenigstens das Stichwort "Collation" kannst Du mitnehmen. Es handelt sich dabei mehr oder weniger um eine Tabelle, welche Zeichen als "gleich" anzusehen sind.
David ist offline   Mit Zitat antworten
Alt 26.11.2008, 14:41  
Neuer Benutzer
 
Registriert seit: 26.11.2008
Beiträge: 14
dazze befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Willkommen.


Um dann was mit den zurückgerechneten Bezeichnern zu machen?
Prüfen ob ein Eintrag im eigenen Kundenstamm vorhanden ist.

Also: Bankingexport liefert den String "Muller" - die gesuchte Funktion liefert mir array("Muller", "Mueller", "Müller") ... dieses Array gleiche ich mit meinen Kundendaten ab und finde dann auch den "Müller" den ich im Kundenstamm habe
dazze ist offline   Mit Zitat antworten
Alt 26.11.2008, 14:46  
Neuer Benutzer
 
Registriert seit: 26.11.2008
Beiträge: 14
dazze befindet sich auf einem aufstrebenden Ast
Standard

Hi David,
danke für die Ideen.

also dass die Banken Ihre Exportdateien nicht per Hand korrigieren ist denke ich nachvollziehbar.
Ich verarbeite dutzende verschiedene Bankingexporte, da gibts wirklich etliche Kombinationen in welcher "Qualität" die Daten ankommen - per Hand korrigieren will ich den Usern der Software nicht wirklich zumuten, da es durchaus mehrere hundert Datensätze jeden Tag sind.

Den Ansatz per SQL hatte ich auch schon, allerdings ist das für den speziellen Fall nicht machbar, ich muss also Strings miteinander vergleichen.
dazze ist offline   Mit Zitat antworten
Alt 26.11.2008, 14:51  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zitat:
Zitat von dazze
also dass die Banken Ihre Exportdateien nicht per Hand korrigieren ist denke ich nachvollziehbar.
Das habe ich auch nicht vermutet Meine Frage war, ob die Daten, die innerhalb der Bank verwendet werden, "richtiger" sind als die Exportdaten, die Du erhälst. Es ist ja durchaus möglich, dass intern Müller immer als Müller gespeichert ist, aber der Exportmechanismus irgendwas zwischen "ärgerlich" und "falsch" ist.
David ist offline   Mit Zitat antworten
Alt 26.11.2008, 15:03  
Neuer Benutzer
 
Registriert seit: 26.11.2008
Beiträge: 14
dazze befindet sich auf einem aufstrebenden Ast
Standard

Der "Exportmechanismus" liegt ja bei der Bank. (Fast) jede Online-Bank stellt Ihren Kunden ja Export-Dateien zum Download bereit. Dadrin sind aber meist 1:1 die Daten die die Bank auch "intern" verwendet. Umlaute werden ja in Überweisungen etc meist eh gewandelt. Dann gibt es noch Exporte zb aus Starmoney (also per HBCI) die Resultate sind im Prinzip die selben, wie direkte Exporte der Bank.

Der Grossteil der Daten aus Bankingexporten sind OK, aber bei einigen gibts halt immer wieder mal Datensätze mit Umlaut-Fehlern.
dazze ist offline   Mit Zitat antworten
Alt 26.11.2008, 15:09  
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:
Also: Bankingexport liefert den String "Muller" - die gesuchte Funktion liefert mir array("Muller", "Mueller", "Müller") ... dieses Array gleiche ich mit meinen Kundendaten ab und finde dann auch den "Müller" den ich im Kundenstamm habe
Du willst den Namen anhand eines Eintrags mit bspw. euren Datensätzen aber hinsichtlich eines existierenden KTO/BLZ Schlüssels abgleichen, oder wie? Ohne diese Schlüssel ist das ja sinnlos, wieviele Müller gibt es...

Zitat:
Meine Frage war, ob die Daten, die innerhalb der Bank verwendet werden, "richtiger" sind als die Exportdaten, die Du erhälst. Es ist ja durchaus möglich, dass intern Müller immer als Müller gespeichert ist, aber der Exportmechanismus irgendwas zwischen "ärgerlich" und "falsch" ist.
Das denke ich nicht. Eher werden die Banken da relaxt mit umgehen. Schließlich werden solche Daten von handschriftlich ausgefüllten und maschinell ausgelesenen Überweisungsträgern ja auch oft fehlerhaft erkannt. Ein weit verbreitetes Problem sind da bspw. Großbuchstaben, wo z.B. keiner für das ß existiert. Da wird dann schnell mal ein B draus.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--

Geändert von nikosch (26.11.2008 um 15:12 Uhr).
nikosch ist offline   Mit Zitat antworten
Alt 26.11.2008, 15:11  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Ah, an solche Daten habe ich garnicht gedacht. Da ist definitiv was dran.
David ist offline   Mit Zitat antworten
Alt 26.11.2008, 15:13  
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

Also die SQL-Variante find ich gar nicht schlecht:

Code:
SELECT 'ÄBOBÜB' LIKE 'ÄBÖBUB'
liefert 1 zurück


Code:
SELECT 'ÄBOBÜB' LIKE 'ÄBÖBUC'
liefert 0
cycap 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
[Erledigt] Anzahl der von Explode gelieferten strings? nofear87 PHP Tipps 2008 3 25.10.2008 11:30
[Erledigt] Frage zu Varianten von der echo() funktion topse PHP Tipps 2008 6 05.09.2008 21:49
Google Adwords - echten Referer ermitteln NetLook PHP Tipps 2006 2 12.05.2006 08:40
doppelte Werte / Strings einer Spalte nur einmal ausgeben... Datenbanken 2 29.07.2005 12:10
build nummer des bs ermitteln ... nur bei microsoft's bs!!! PHP Tipps 2005-2 2 24.07.2005 15:59
Besucher mit den meisten GB Einträgen ermitteln! Datenbanken 7 21.04.2005 12:09
alle Positionen eines Strings innerhalb eines Strings finden PHP Tipps 2005 8 23.02.2005 20:21
Bildschirmauflösung ermitteln? Pimbolie1979 HTML, Usability und Barrierefreiheit 13 16.01.2005 01:28
pixelbreite eines Wort ermitteln... 18inch PHP Tipps 2005 5 07.01.2005 22:55
strings sortieren aircrash PHP Tipps 2004-2 5 23.12.2004 16:57
metrische länge eines strings Sclot PHP-Fortgeschrittene 3 08.12.2004 13:54
CRC Summe einer Datei ermitteln?? PHP Tipps 2004 1 14.10.2004 09:23
[Erledigt] Strings saeubern PHP Tipps 2004 2 12.10.2004 15:52
[Erledigt] Tabellenname eines Feldes ermitteln PHP-Fortgeschrittene 3 22.09.2004 15:49
Referrer ermitteln? PHP Tipps 2004 8 13.09.2004 13:43

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php umlaute strings, php detect umlaute, umlaute varianten, php string alles nach umlaut, php string umlauts, php detect umlaut in string, strings mit deutschen umlauten, ermitteln von varianten, banken exportmechanismen, umlaute durch zeichenketten ersetzten google adwords, sql umlautvarianten, datensatz umlaute, php länge von string ermitteln umlaute

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