Autor | Zpráva | ||
---|---|---|---|
deryl Profil * |
#1 · Zasláno: 11. 11. 2009, 23:32:57
Dobrý den,
jak omezit při vkládání příspěvku, aby uživatel nevložil např. na jeden řádek pár slo, pak udělal 20x enter vložil něco a zobrazily se ty všechny řádky, aby to bylo omezeno max. třeba na 3 řádky. Díky |
||
Majkl578 Profil |
#2 · Zasláno: 11. 11. 2009, 23:46:59 · Upravil/a: Majkl578
Pokud chceš pouze vypsat chybu:
if (preg_match('~\n{4,}~', $input)) { throw new Exception('Bylo vlozeno vice nez 3 radky za sebou'); } Pokud by jsi chtěl tyto řádky (více než 3) nahradit právě za tři bez chyby: $input = preg_replace('~(\n{3})\n*~', '$1', $input); |
||
deryl Profil * |
#3 · Zasláno: 12. 11. 2009, 00:57:59
To mi bohužel nefunguje, je to určitě zprávně?
|
||
deryl Profil * |
#4 · Zasláno: 12. 11. 2009, 00:58:08
*správně
|
||
Majkl578 Profil |
#5 · Zasláno: 12. 11. 2009, 01:10:15
[#3] deryl
Omlouvám se, třída InvalidStateException neexistuje defaultně. Zvykl jsem si na ni z frameworku ve kterém dělám... Kód jsem upravil. Jinak toto funguje na znak nového řádku. Pokud by to mělo fungovat na tag <br />, tak takto: if (preg_match('~(<br />){4,}~', $input)) { throw new Exception('Bylo vlozeno vice nez 3 radky za sebou'); } a tiché nahrazení: $input = preg_replace('~((?:<br />){3})(?:<br />)*~', '$1', $input); |
||
deryl Profil * |
#6 · Zasláno: 12. 11. 2009, 01:26:23
[#5] Majkl578
U toho nahrazení ale vznikne problém, když jsou ty další řádky vypsány pod sebe: <br /> <br /> <br /> <br /> <br /> <br /> |
||
Kcko Profil |
#7 · Zasláno: 12. 11. 2009, 09:08:28
doplnis si modifikator s
|
||
deryl Profil * |
#8 · Zasláno: 12. 11. 2009, 10:57:02
Mohu se zeptat kam? Nedaří se mi to tam vložit správně, díky
|
||
Majkl578 Profil |
#9 · Zasláno: 12. 11. 2009, 10:58:24 · Upravil/a: Majkl578
Za druhé ~, problém je, že to nepomůže.
Chce to jinou úpravu: if (preg_match('~(\s*<br />\s*){4,}~', $input)) { throw new Exception('Bylo vlozeno vice nez 3 radky za sebou'); } //--------- $input = preg_replace('~((?:\s*<br />\s*){3})(?:\s*<br />\s*)*~s', '$1', $input); |
||
Časová prodleva: 14 let
|
0