Autor Zpráva
stepanka
Profil *
Ahoj,

existuje nějaká funkce v PHP, která mi řetězec převede na jednotlivé znaky? Řetězec neobsahuje žádné mezery, je ve tvaru: CZ000125, CZ001258, SK000016, atp.
Potřebuju z těchto řetězců dostat pouze to číslo, které je napravo, bez nul, tzn.: 125, 1258, 16.

Už jsem odstranila první dva znaky (CZ nebo SK) a teď zkouším převést zbytek na jednotlivé znaky, abych v cyklu mohla postupně odstraňovat zprava nuly. Fcí explode mi to ale nejde.

Neexistuje na to něco?

Moc děkuju.
Keeehi
Profil
str_split
stepanka
Profil *
Keeehi:
funguje, moc díky!
Alphard
Profil
stepanka:
abych v cyklu mohla postupně odstraňovat zprava nuly
Ono by stačilo
$int = (int) substr('CZ000125', 2);
DJ Miky
Profil
Případně
ltrim(substr('CZ000125', 2), '0')
vasio
Profil *
Na toto jsou stvořené regulární výrazi ;-),
<?php
preg_match( '/[ 1-9 ]+/', 'CZ000125', $nalez );
echo $nalez[ 0 ];
?> 

zkus...
vasio
Profil *
sorry za to měký i (výrazy)
Keeehi
Profil
vasio:
'/[ 1-9 ]+/'
tam bude problém co když řetězec bude vypadat takto : CZ000105

viděl bych ho asi takto:
'/[1-9][0-9]*/'

co tím neprojde je 'CZ000000' ale to snad nevadí
vasio
Profil *
Pravda, omlovám se ;-)
stepanka
Profil *
teda, tady se to rozjelo..

Původně jsem to vyřešila takto:

$id_kandidata_hledani = substr($dany_retezec, 2);
$id_kandidata_hledani_pole = str_split($id_kandidata_hledani);
foreach ($id_kandidata_hledani_pole AS $znak)
  {
  if ($znak == 0) $id_kandidata_hledani = substr($id_kandidata_hledani, 1);
  else break;
  }


Ale když vidím Alphardovo řešení, ušetřím aspoň spoustu řádků. Díky za něho.

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:

0