Autor | Zpráva | ||
---|---|---|---|
snazimse Profil |
Zdravím,
prosím o pomoc,jak z obyčejného stringu: Příklad: $můj_string = "NECO 123"; Potřeboval bych, z toho stringu plaintextu vytáhnout jen to číslo jak to udělat? Problém je v tom,že to číslo,může mít různý počet des.míst,proto substr,mi nepomůže,protože nevím,kolik to bude míst. Prostě něco,aby mi to vytáhlo třeba pouze arabské číslice.Protože jiné číslo tam nebude. Lze toto nějak uskutečnit v php? Děkuji všem za odpovědi řešení! |
||
Alphard Profil |
|||
Kubo2 Profil |
#3 · Zasláno: 16. 6. 2014, 18:27:16
snazimse:
Povedzme regulárny výraz: <?php preg_match('/(\d+(?:[.,]\d+)?)/', $můj_string, $spätné_odkazy); $číslo = (float) $spätné_odkazy[1]; // práca s $číslom Ukážka: |
||
pepiik Profil * |
#4 · Zasláno: 16. 6. 2014, 19:31:44
substring samozřejmě stačí zadáš jen start parametr a lenght parametr vynecháš.
$můj_string = "NECO 123"; $cislo = substr($můj_string,5); Funguje tedy jen pokud víš od kterého znaku začíná číslo a zároveň za číslem není další text. Jestli ne tak pak použít preg_match jak píše Kubo2 |
||
snazimse Profil |
#5 · Zasláno: 17. 6. 2014, 00:05:41
Alphard:
Díky všem za odpovědi,pomohly mi výrazně. I když,by mě zajímalo,jak to provést ,přes ten explode. Můžete mi sem vložit názorný příklad? Děkuji velmi! |
||
Alphard Profil |
#6 · Zasláno: 17. 6. 2014, 00:43:46
explode() je méně univerzální, jak říká manuál, rozdělí řetězec podle mezer do pole. Kdyby však byl vstup vždy ve tvaru
něcoMEZERA123 , stačilo by (v nových verzích PHP)
echo explode(' ', 'NECO 123')[1]; To řešení s reguláry je lepší. |
||
Časová prodleva: 3 dny
|
|||
snazimse Profil |
#7 · Zasláno: 19. 6. 2014, 14:10:09
Ano rozumím,děkuji!
|
||
Časová prodleva: 10 let
|
0