Willkommen in der Webstatt
User-1 am 12.06.06 06:20

hallo

ich möchte mit php zahlen von buchstaben trennen. z.b. eine adress-eingabe:
musterstrasse 23

das ich am schluss nur noch die strassen-nummer habe.

ich hab im manual str_replace gefunden, weiss aber nicht, wie ich das auf mein problem anwenden soll....
ist das die richtige funktion für sowas?
oder sonst jemand ein tipp?

netcup.de Warum gibt es hier Werbung?
User-1 am 12.06.06 06:53

hab's gefunden.
für die, die's ebenfalls interessiert:

$strasse_neu = $strasse;
$street = eregi_replace('[0-9]', "", $strasse_neu);
$nr = eregi_replace('[a-z]', "", $strasse_neu);

User-2 am 14.06.06 21:15

Pfui, RegEx Kanone auf sowas und dann auch noch eregi....

<?php
$strasse = 'Musterstrasse 23';
$n_strasse = explode (' ', $strasse);
trim ($n_strasse['1']);

echo 'Straße: ' . $n_strasse['1'];
echo 'Nummer: ' . $n_strasse['2'];
?>

User-3 am 14.06.06 22:05

Tja, deins is zwar in sofern richtig aber was ist, wenn der erste String eine zahl enthält? Sprich kein leerzeichen existiert? :P ;)

User-2 am 14.06.06 22:56

Quote
Original von xyz-110
aber was ist, wenn der erste String eine zahl enthält? Sprich kein leerzeichen existiert? :P ;)


Ehm, ich versteh den zusammenhang erlich gesagt nicht ganz Oo

User-4 am 14.06.06 23:06

@ xyz-207, nicht ganz das ware:

Drei Lindenstrasse 15

Oder sowas ;)

Auf dem Hof 123, Eintausend Pagageiengasse 46? *g*


EEEEEDIT:

Wenn du mit explode trennst ist das erste Element im array 0 und nicht 1.

User-2 am 14.06.06 23:49

Mh okay, hab nur das Beispiel von 1. Post aufgegriffen ohne weiter zu überlegen.
Auch das mit explode stimmt, bei RegEx-Funktionen wärs richtig gewesen :P

User-5 am 15.06.06 00:08

mir war grad langweilig :D

<pre><?php

function extract_number($in) {
$str = explode(' ', $in); //erstmal zerlegen
//jedes element durchgehen
$ret = array('',0);
$isnr=false;
for($i=0;$i<count($str);$i++) {
if(is_numeric(substr($str[$i],0,1)) || $isnr) { //wenn nummer, oder aber schon vorher eine nummer gefunden wurde...
$isnr=true;
if($ret[1]!=0) $ret[1] .= $str[$i]; //weitere teile der nummer gefunden
else $ret[1] = $str[$i]; //erste nummer gefunden
} else {
$ret[0] .= $str[$i].' '; //name gefunden
}
}
$ret[0]=trim($ret[0]); //evt. leerzeichen entfernen
return $ret;
}
print_r(extract_number('Musterstraße 1'));
print_r(extract_number('Musterstraße max 1'));
print_r(extract_number('Musterstraße max 11'));
print_r(extract_number('Musterstraße max 11b'));
print_r(extract_number('Musterstraße max 1 1'));
print_r(extract_number('Musterstraße max 1 1 b'));
?></pre>
Array
(
[0] => Musterstraße
[1] => 1
)
Array
(
[0] => Musterstraße max
[1] => 1
)
Array
(
[0] => Musterstraße max
[1] => 11
)
Array
(
[0] => Musterstraße max
[1] => 11b
)
Array
(
[0] => Musterstraße max
[1] => 11
)
Array
(
[0] => Musterstraße max
[1] => 11b
)

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt