Willkommen in der Webstatt Zum Webstatt Blog und Stories
gecko 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?
gecko 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);

Sven Sven 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'];
?>

Kevz 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 ;)

Sven Sven am 14.06.06 22:56

Quote
Original von Kevz
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

Wasili am 14.06.06 23:06

@ Sven, 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.

Sven Sven 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

Snake 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