Autor Zpráva
Routh
Profil *
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
Nechápu, 256 mezer už projít může?
Taps
Profil
Alphard
možná je to mysleno tak že v 1 - 255 znacích se nesmí vyskytovat mezera
Taps
Profil
Routh
napadl mě tento kod
$text="test";
if ((strlen($text)<=255) and (strpos($text," ")!==false))
{echo"Chybka";}
else{echo"pokračujem";}
Routh
Profil *
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
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 *
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
preg_match('~^[[:space:]]{1,255}$~', $input); //true pokud jsou tam jen znaky jako mezera, tabulator, novy radek apod
Aichi
Profil
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
Aichi:
Čemu má tohle pomoci? Kontrola řetězce, jestli jeho délka není záporná má řešit co?
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ů.

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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