Autor | Zpráva | ||
---|---|---|---|
Bady Profil * |
#1 · Zasláno: 26. 1. 2006, 00:39:44
ahoj! mam forum, chcel by som odstranit prazdne riadky z prispevkov, ako na to?
napr. tu hore su 2 volne riadky. take nieco nexem dovolit na mojom fore, lebo inteligenti mi tam pridu a odentruju mi 100 prazdnych riadkov. :) dakujem. |
||
Hugo Profil |
#2 · Zasláno: 26. 1. 2006, 05:13:23
Bady
No, ono by neškodilo napsat, jakým způsobem ty příspěvky ukládáš. Pokud jako html, tak vykopej zbytečné <br>, pokud je to jen text, tak hledej konce řádků. Pomocí regulárních výrazů by to neměl být problém. |
||
jozob Profil |
#3 · Zasláno: 26. 1. 2006, 06:31:08 · Upravil/a: jozob
Ak je to text, tak by teoreticky stačilo toto:
$novytext=str_replace("\n\n","",$starytext); alebo: $novytext=str_replace("\n\n\n","",$starytext); To boli jednoduchšie možnosti, zložitejšia a spoľahlivejšia metóda by bola asi takáto: $textpole=explode("\n",$starytext); Táto metóda vyhádže úplne všetky riadky, pokiaľ by si chcel nechávať aspoň jeden riadok, je to možné takto: $textpole=explode("\n",$starytext); Uvedená metóda odstráni prázdny riadok, len v prípade ak sa pod ním nachádza prázdny riadok. To u posledného riadku neplatí, takže nakoniec zostane vždy len jeden riadok. |
||
Hugo Profil |
#4 · Zasláno: 26. 1. 2006, 06:34:19
jozob
IMHO bude lepší použít např. preg_replace, a nahradit každou sekvenci více volných řádků pouze jedním. |
||
jozob Profil |
#5 · Zasláno: 26. 1. 2006, 06:36:37
Ešte dodám, v poslednej metóde, v tom vetvení, v poslednej podmienke je ako kľúč poľa premenná $kluc zväčšená o 1, skript tejto diskusie tam vkladá medzeru, ktorá tam nepatrí...
A ak by to bol HTML text, stačí nahradiť všetky znaky \n znakom <br />. |
||
jozob Profil |
#6 · Zasláno: 26. 1. 2006, 06:37:56
Hugo
Je to možné, ale mne osobne regulárne výrazy nejak nesadli. No musím si o tom niečo naštudovať, vyzerá to tak, že s nimi bude svet rýchlejší a krajší... |
||
Hugo Profil |
#7 · Zasláno: 26. 1. 2006, 06:44:13
jozob
Regulární výrazy jsou velmi užitečné, ale někdy dokáží pěkně zpomalit zpracovávání skriptu, takže se to nesmí přehánět. Ovšem tady bych se jich nebál. |
||
jozob Profil |
#8 · Zasláno: 26. 1. 2006, 06:48:10
Hugo
Jasné... Ešte ma odradila jedna vec, a to skutočnosť, ak spravíš nie celkom správny výraz, nemusí fungovať pre každý vstup, ale to je už len o precíznosti programátora. |
||
Bady Profil * |
#9 · Zasláno: 26. 1. 2006, 17:54:51
Ok lidi, ale.
ked dam odoslat tak sa mi zapise presne toto:
takze pokial sa domnievam spravne, tak ked ten string neobsahuje /n tak ho tam proste nenajde, cize nenahradi... Taakze, asi mam neako blbe nastavene <textarea> lebo mi tam proste riadkuje, ale nezapisuje ziadne tagy... skusal som dat nl2br($odkaz); a potom pomocou str_replace("<br \><br \>","",$odkaz); to vymazat... ale nic. |
||
jozob Profil |
#10 · Zasláno: 26. 1. 2006, 17:56:57
Bady
Tie lomítka si napísal presne opačne, správne je \n a <br /> |
||
Bady Profil * |
#11 · Zasláno: 26. 1. 2006, 18:32:21
jezis... mno preklep... , tak si ich predstav naopak. skus sa zamerat na to co som pisal... dik
|
||
Anonymní Profil * |
#12 · Zasláno: 26. 1. 2006, 21:58:32
Bady
Sorry, ale ako mám vedieť, že je to preklep? |
||
jozob Profil |
#13 · Zasláno: 26. 1. 2006, 22:00:46
Prepáčte, posledný príspevok je môj.
|
||
Bady Profil * |
#14 · Zasláno: 26. 1. 2006, 22:56:08
jozob
Nemas ako... sorry. ale pri hrabani sa v mysql admine som nasiel ze tie nove riadky sa zapisuju nie \n ale nieco ako \r\n nepomoze? |
||
jozob Profil |
#15 · Zasláno: 26. 1. 2006, 23:02:58
Bady
Tuším, že to je zápis konca riadku vo Windows. UNIXový formát je \n, Windows \r\n. Takže asi bude záležať od systému, na ktorom sa skript spúšťa. |
||
jozob Profil |
#16 · Zasláno: 26. 1. 2006, 23:04:33
Ak to bude podľa môjho predpokladu, potom by sa mohol upraviť môj pôvodný skript:
$textpole=explode("\r\n",$starytext); |
||
jozob Profil |
#17 · Zasláno: 26. 1. 2006, 23:05:55
<OT>Neviete niekto, prečo sa v kóde, ktonkrétne v tom kľúči poľa rozdeľuje slovo "kluc" na "kl uc"??</OT>
|
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0