megacarsit
Goto Top

PHP Leerzeichen in MacAdressen löschen

RegEx und preg replace

Hallo Leute!!

Ich habe eine n-zahl an Mac-Adressen, die ich über snmpwalk ausgegeben bekomme, sie sehen so aus :

Port 21, 00 60 2F 3E 4D C8 ; 01 50 2D B4 E2 F8;

Würde dort gern ':' doppelpunkte, zwischen den 2 Zeichenfolgen einfügen, so wie man es meist kennt von Mac-Adressen.

Preg_replace in Kombination mit regex...Ich weiss nicht ob ich damit auf dem richtigen Wege bin,
sonst bin ich auch mit der syntax von preg_replace etwas unsicher.
Das mein Regex-gebilde:

; (^(?i)[A-Z 0-9]{2,1} [A-Z 0-9]{2,1} [A-Z 0-9]{2,1} [A-Z 0-9]{2,1} [A-Z 0-9]{2,1} [A-Z 0-9]{2,1}) ; :


Danke schöön!

Content-ID: 96197

Url: https://administrator.de/contentid/96197

Ausgedruckt am: 24.11.2024 um 02:11 Uhr

nuubal
nuubal 05.09.2008 um 11:40:57 Uhr
Goto Top
Hallo,

wo speicherst du die Ausgabe von snmpwalk? Ist das eine eigene Datei, in der nur vergleichbarer Inhalt drin steht, wie Port 21, 00 60 2F 3E 4D C8 ; 01 50 2D B4 E2 F8; ?

Gruß
megacarsIT
megacarsIT 05.09.2008 um 11:50:59 Uhr
Goto Top
Hi!
Besten Dank für Deine Antwort!

Nutze dazu keine Datei.
snmpwalk kommt aus einem Array, die im original aus so aussieht (wobei die grösse variable ist), :

21INTEGER: 21INTEGER: Hex-STRING: 00 60 2F 3E 4D C8 Hex-STRING: 01 50 2D B4 E2 F8

Die hab ich mit Hilfe in diese Form gebracht:
Port 21, 00 60 2F 3E 4D C8 ; 01 50 2D B4 E2 F8;

Und mit Hilfe von Tuts das obige Regex "entwickelt". Ist den preg_replace die richtige wahl dafür?
nuubal
nuubal 05.09.2008 um 12:20:28 Uhr
Goto Top
Hi,

ich denke du wärst wesentlich schneller, wenn du mit der explode() Funktion von PHP arbeitest und dir den String erst mal zerlegst mit den Delemiter ",". Danach hast du dann im Array den Eintrag, lautet in etwa so: [1] => 00 60 2F 3E 4D C8 ; 01 50 2D B4 E2 F8;
diesen könntest du nochmal zerlegen mit dem Delemiter ";". Danach ersetzt du die Leerzeichen mit der str_replace() Funktion.

Die Regex Sachen dauern einfach viel zu lange.

Gruß
megacarsIT
megacarsIT 08.09.2008 um 00:59:55 Uhr
Goto Top
Hey Nuubal!

Besten Dank für Deine gute Hilfe!

Jedoch komm ich bei einer so noch nicht so ganz klar, hab geschafft nun mittendrin die ":" Doppelpunkte zu setzen.
Jedoch wird bei mir auch am Anfang ein ":" gesetzt. Sieht dann so aus:
21;:00:06:5B:F6:E9:84;:00:09:3D:13:8E:34;

Hab verucht nachträglich am Punkt ';:' mit str_replace zu arbeiten.
Um aus ';:' ein ';' zu machen. Irgendwie ohne Erfolg face-sad

gruss,
MegacarsIT