Autor Zpráva
apollon
Profil
Prosím o pomoc. V ručně psaném souboru mám takto napsanou ulici s číslem popisným. Potřeboval bych je rozdělit, abych zkontroloval psč. Byly tam záludnosti, ale dali se vyřešit funkcí preg_replace. U tohoto netuším jak dostat ze vstupních dat výstupní.

vstup:
$adresy = array(
'Roztylske nam.67',
'Václavská10',
'Václavská11b',
'Nad Cementárnou 8a'
);

výstup
'Roztylske nam.67' ... Array ( [0] => Roztylske nam. [1] => 67 )
'Václavská10' ... Array ( [0] => Václavská [1] => 10 )
'Václavská11b' ... Array ( [0] => Václavská [1] => 11 [2] => b)
'Nad Cementárnou 8a' ... Array ( [0] => Nad Cementárnou [1] => 8 [1] => a )
apollon
Profil
stačí mě navést na funkci, která najde v řetězci "xxx555" 555
Kcko
Profil
preg_match("~(\d+)~", $token, $out);
apollon
Profil
preg_match("~(\d+)~", $token, $out);
teď mi to háže problémy s češinou (mám utf8) a nerozdělí to tak jak potřebuji.
peta
Profil
apollon
http://cz.php.net/preg_match
http://cz.php.net/manual/en/regexp.reference.php
http://cz.php.net/manual/en/reference.pcre.pattern.modifiers.php
google preg_match token

tak to mas spatne nastavene kodovani ale ty v php, ten reg. vyraz by na to nemel mit vliv, protoze
preg_match("~(\d+)~", $token, $out);
\d+ = opakovani cisla
~ jsem nedohledal, ale to je tim, ze se to spatne hleda googlem :)
kazdopadne se tam nikde neresi diakritika, takze by to mohlo byt ok.

zkus treba zmenit header() na utf a totez s kodovanim toho php souboru.
apollon
Profil
ok. Tak jsem to udělal takto, najít výraz do výskytu čísla a uložit do $out.
V $out přidat backslash a dát ho jako patterns do preg_replace.
Pak už v $adresa zbyde č.p. případně o.č.

preg_match("~(\D+)~", $adresa, $out);
$out[1]='/'.$out[1].'/';
$adresa = preg_replace($out[1], '', $adresa);

Děkuji za rady. :-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: