olipro
Goto Top

Textblock - Wort X aus Zeile Y auslesen

Ich habe ein Textfeld aus einer Tabelle auszulesen, komme allerdings hier irgendwie nicht weiter.

Zunächst wurde das wie folgt genutzt:

text = "Herr Alfred Mustermann Musterfirma Musterstr. 11 DE 12345 Musterhausen"

Mit nl2br wurde das dann so ausgeben:

HerrAlfred MustermannMusterfirmaMusterstr. 11DE 12345 Musterhausen

So weit, so gut ... funktioniert auch alles.

Jetzt benötige ich aber die PLZ (in diesem Falle 12345), die IMMER in Zeile 5 als Wort 2 zu finden ist, zur weiteren Verwendung in einer separaten Variable.

Leider steh ich hier echt im Moment etwas auf dem Schlauch. Beim googeln komm ich leider auch nicht so recht weiter.
Kann mir jemand einen Tipp geben?

Content-ID: 125905

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

Ausgedruckt am: 26.11.2024 um 05:11 Uhr

filippg
filippg 28.09.2009 um 02:54:03 Uhr
Goto Top
Hallo,

ein Ansatz, der mir einfällt wäre ein doppelter explode(). Erst nach Zeilenumbruch (damit bekommst du die 5. Zeile), dann nach Leerzeichen (damit bekommst du in der 5. Zeile das 2. Wort).

Gruß

Filipp
TsukiSan
TsukiSan 28.09.2009 um 05:57:12 Uhr
Goto Top
Hallo oliPro,

erst mal auch einen guten Tach....

eventuell könnte dir die Split-Funktion weiter helfen.
Das Leerzeichen wird als solches auch erkannt und es gibt dir die Postleitzahl in deinem Falle aus.

Beispiel in VBS:
spl = "DE 12345 Musterhausen"  
SPL1 = split(SPL," ")  
SPL2 = SPL1(1)
msgbox SPL2

Ich nutze kein PHP, es muss aber ziemlich ähnlich dem von VB sein!
Eventuell kannst du meine Anregung in deinen Code einbinden?!

Gruß

Tsuki
maretz
maretz 28.09.2009 um 06:57:25 Uhr
Goto Top
Moin, mein Ansatz (aus Perl-Zeiten) wäre: Zuerst das ganze per Preg_split nach dem Return (\n glaub ich) auftrennen. Jetzt habe ich einen Array mit 5 Elementen, jedes Element ist eine Zeile. Also noch Element Nummer 4 mit nem Preg-Split auftrennen -> und schon habe ich einen neuen Array dessen 2tes Element die PLZ ist...

$x = preg_split("/\\n/",$deinText)
$y = preg_split("/ /",$x[3]);
$plz = $y[1];

so in etwa (bin grad beim \n nich sicher ob dass das richtige NL-Zeichen ist)
godlie
godlie 28.09.2009 um 07:33:19 Uhr
Goto Top
@maretz
Es könnte alternativ noch das \n\r sein.
nxclass
nxclass 28.09.2009 um 08:39:27 Uhr
Goto Top
$sText = <<<__TEXT__
Herr
Alfred Mustermann
Musterfirma
Musterstr. 11
DE 12345 Musterhausen
__TEXT__;

//
$aAdresse = explode("\n", $sText);  
$aPlzOrt = explode(' ', $aAdresse[4]);  
// Debug Ausgabe
echo '<pre>'.$aPlzOrt[1].'</pre>';  

//
if (preg_match('/^([^\n]*)\n([^\n]*)\n([^\n]*)\n([^\n]*)\n(([A-Z]{2})\ ([0-9]{5})\ (.*))$/', $sText, $aErg)) {  
     // Debug Ausgabe
    echo '<pre>'.print_r($aErg,true).'</pre>';  
}

... explode sollte schneller sein als preg_split - ggf. kann man auch gleich die ganze Adresse durch preg_match jagen.
oliPro
oliPro 30.09.2009 um 11:57:55 Uhr
Goto Top
Viiiieeeelen Dank!
Funktioniert einwandfrei!