tami: SEPA konformen String erzeugen mit preg_replace Ascii 44 und 130

Beitrag lesen

hi dedlfix,

Wenn man mal ein anderes Dokument, eins von der Deutschen Bundesbank, nimmt, dann sieht man da übrigens keine zwei Kommas, sondern nur eins, dafür aber noch ein Hochkomma, das in dem anderen Dokument fehlt.

Das eine ist Ascii 44 (das normale Komma), das andere Ascii 130. S.a. http://www.petefreitag.com/cheatsheets/ascii-codes/. Ich hatte in meinem Beispiel oben 2x130 drin, warum auch immer. Ascii 130 kennichnicht. Muss auch nicht rein. Das Hochkomma habe ich mit reingenommen. Danke.

Die Umlaute müssen natürlich vorher ersetzt werden:

$deutscheSonderzeichen = array("ä","ö","ü","ß","Ä","Ö","Ü");  
$deutscheSonderzeichenFürSepa   = array("ae", "oe", "ue", "ss", "Ae", "Oe", "Ue");  
  
$dirty = 'üäöÜÖÄß#*~;_}][{&%$§!\\';  
$clean = 'a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 \' : ? , - ( + . ) /';  
  
$cleanAndDirty = $clean . $dirty;  
  
$stillDirty  = str_replace($deutscheSonderzeichen, $deutscheSonderzeichenFürSepa, $cleanAndDirty);  
  
$sepaNotAllowed = "/[^a-zA-Z0-9\/\-?:()\.',+ ]/si";  
$notAllowedReplacement = "";  
$sepaClean = preg_replace($sepaNotAllowed, $notAllowedReplacement, $stillDirty);  
  
  
var_dump($dirty);  
var_dump($clean);  
var_dump($sepaClean);  

gibt:

string(22) "üäöÜÖÄß#*~;_}][{&%$§!"
string(143) "a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 ' : ? , - ( + . ) /"
string(157) "a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 ' : ? , - ( + . ) /ueaeoeUeOeAess"

mfg

tami