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-Key: 125905

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

Printed on: April 24, 2024 at 23:04 o'clock

Member: filippg
filippg Sep 28, 2009 at 00:54:03 (UTC)
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
Member: TsukiSan
TsukiSan Sep 28, 2009 at 03:57:12 (UTC)
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
Member: maretz
maretz Sep 28, 2009 at 04:57:25 (UTC)
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)
Member: godlie
godlie Sep 28, 2009 at 05:33:19 (UTC)
Goto Top
@maretz
Es könnte alternativ noch das \n\r sein.
Member: nxclass
nxclass Sep 28, 2009 at 06:39:27 (UTC)
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.
Member: oliPro
oliPro Sep 30, 2009 at 09:57:55 (UTC)
Goto Top
Viiiieeeelen Dank!
Funktioniert einwandfrei!