Autor Zpráva
bery2
Profil
hoja,

mám takový prosbu.. věděl by někdo jak naformátovat dvanáctimístné číslo takto:

uložené číslo v db: 335453400216
zobrazit číslo takto: 33 54 534 0 021-6

napadají mě jen těžkopádná řešení.. nemáte nějaký nápad?

díky moc za pomoc
Martin02
Profil
bery2:
Můžeš požít jednoduchou funkci Substr()...
Kdyby ti to nestačilo, asi bude třeba lépe popsat, co chceš udělat - algoritmus, podle kterého chceš ty čísla rozdělit. To ci jsi napsal máme chápat jako že po dvou číslech mezera, po dalších dvou mezera, po dalších třech mezera, po dalším jednom mezera a po dalších třech pomlčka? Nebo v tom je nějaký jiný algoritmus? ...
bery2
Profil
ano přesně, tvůj popis je přesný
Martin02
Profil
bery2:
Pak by to mohlo vypadat nějak takto:
<?php
  ...
  $cislo = "335453400216";
  $noveCislo = substr($cislo, 0, 2)." ".substr($cislo, 2, 2)." ".substr($cislo, 4, 3)." ".substr($cislo, 7, 1)." ".substr($cislo, 8, 3)."-".substr($cislo, 11, 1);
?>
bery2
Profil
super díky moc-- ještě jsem to hodil do funkce a šlape to skvěle. Podobně jsem na to myslel, ale se zbytečně složitým zapisem.. toto je good )))
peta
Profil
<?php
$str = "335453400216";
echo $str.'<br>';
$str = preg_replace('~(\d{2})(\d{2})(\d{3})(\d{1})(\d{3})(\d{1})~', "$1 $2 $3 $4-$5", $str);
echo $str;
?>

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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