Autor | Zpráva | ||
---|---|---|---|
Routh Profil * |
#1 · Zasláno: 19. 8. 2009, 21:44:06
Ahoj, po delší době si zas nevím rady v PHP s podívnou mezerou. Mám normal input pole, proměnnou kterou chci ošetřit na mezeru(y), hledal jsem zde i googlil, ale bezvýsledně. Nacházel jsem funkci TRIM, která není můj případ. Takže pokud to pochopíte chci jen podmínku ve smyslu:
if ($text == MEZERA počet 1-255) {echo"Chybka";} else{pokračujem} aby nešla uložit samotná mezera(y) v počtu od 1 do 255. Doufám že na to funguje nějaká primitivní funkce jinak nevim, nic jsem nenašel. Díky za pomoc. |
||
Alphard Profil |
#2 · Zasláno: 19. 8. 2009, 21:55:21
Nechápu, 256 mezer už projít může?
|
||
Taps Profil |
#3 · Zasláno: 19. 8. 2009, 21:57:55
Alphard
možná je to mysleno tak že v 1 - 255 znacích se nesmí vyskytovat mezera |
||
Taps Profil |
#4 · Zasláno: 19. 8. 2009, 22:07:33 · Upravil/a: Taps
Routh
napadl mě tento kod $text="test"; if ((strlen($text)<=255) and (strpos($text," ")!==false)) {echo"Chybka";} else{echo"pokračujem";} |
||
Routh Profil * |
#5 · Zasláno: 19. 8. 2009, 22:12:22
Alphard
„Nechápu, 256 mezer už projít může?“ No asi jsem to neupřesnil, je to proměná v databázi s VARCHAR délky 255, takže 256. znak nejde :-D |
||
Alphard Profil |
#6 · Zasláno: 19. 8. 2009, 22:15:31
Routh:
Aha, takže by mohl fungovat kód od Tapse, jen možná budete potřebovat doplnit, aby se kontrolovalo kromě mezery i odsazení, tabulátory atd. V takovém případě by byl už vhodnější regulár a testovat na bílé znaky. |
||
Routh Profil * |
#7 · Zasláno: 19. 8. 2009, 22:21:50
Tapsův kód funguje. Díky
Alphard Áha, takže se mi vyskytl další problém :-D jak je to stěmi bílími znaky ? Zas nějaká primitivní funkce ? Pokud proměnná obsahuje pouze bíle znaky mezery, tabulátory apod. tak vypíše chybu. |
||
Majkl578 Profil |
#8 · Zasláno: 19. 8. 2009, 22:38:45 · Upravil/a: Majkl578
preg_match('~^[[:space:]]{1,255}$~', $input); //true pokud jsou tam jen znaky jako mezera, tabulator, novy radek apod |
||
Aichi Profil |
#9 · Zasláno: 20. 8. 2009, 17:12:12
if (strlen($text) > 0 && strlent($text) < 256 && trim($text)==0) {echo"Chybka";} else{pokračujem} pokud je to string do 255 znaku slozen jen z whitespace tak to neprojde, neni treba regularka |
||
Alphard Profil |
#10 · Zasláno: 20. 8. 2009, 19:14:19 · Upravil/a: Alphard
Aichi:
Čemu má tohle pomoci? Regulár od Majkla578 mi připadá jako vhodné řešení. Když už, tak výstup z trim() porovnávejte s prádným řetězcem, tohle je zbytečné převadění typů. |
||
Časová prodleva: 15 let
|
0