Názory ke článku str_replace() v praxi
to mi chces rict ze pri kazdem vypisu vyberes vsechno z databaze a vsechno bude prochazet cely text str_replace a nahrazovat smajliky.
to je docela hnus, ne?
a taky je docela hnus to tvoje nahrazovani htmlspecialchars. to se dela vetsinou pri vkladani do databaze, ne??
INSERT INTO table_name(...) VALUES ('" . nl2br(htmlspecialchars($hodnota)) . "');
No proste je to cele strasne. Nejprve se nauc programovat a potom neco napis.
Zaachi. S tym htmlspecialchars s tebou suhlasim. MAlo by sa to robit pri vkladani do db, ale ako by to bolo teda lepsie s tym str_replace?
Budem sa citovat z konca clanku: "výber je len na vás". Tvoju poslednu vetu zaachi akosi ignorujem, takto som to spravil len preto, ze mi priatel povedal nech to takto napisem. Ono napisal som mnoho verzi, a jemu tato najviac vyhovovala, tak som sem hodil tu. a ja obvykle aj tak htmlspecialchars na svojich skriptoch nevyuzivam, lebo mne ako uzivatelovi casto zavadzia, ze si nemozem vkladat html do prispevkov... A tiez som vychadzal z predpokladu, ze citatel bude zaciatocnik, ktory nerobi velke projekty, cize by velmi nezatazovalo server, keby to musel vyhodnocovat znovu a znovu, kazdopadne som dal to, co sa pacilo kamosovi, zaciatocnikovi, tak som myslel, ze to bude najdidaktickejsie...
Onlouvam se. Teto posledni vety jsem si opravdu nesiml.
Ale ty si musis uvedomit, ze zacinajici uzivatel, ktery neni temer nic o programovani v PHP bude tento kod kopirovat a nebude jej upravovat. takze by nebylo od veci psat raci tak, aby to bylo co nejefektivnejsi.
Taky se podivej na svuj vyber
$hahaha = MySQL_Query("SELECT * FROM tabulka");
-vzdyt to je taky strasne neefektivni.
Programator by taky nikdy nenapsal nesmysl jako je tohle:
echo "$text";
- co to je??
Urcite by bylo lepsi tvar:
echo $text;
nebo lip: print $text;
Ale proc zbytecne nezatezovat server? :-)
Ale jinak te nechci kritizovat. Clanek se mi libi, protoze si myslim ze neco takoveho kazdeho zajimalo. Opravdu.
Jenom by jsem ten zdrojak cely prepsal do pouzitelnejsiho tvaru.
To je vtip, ne? Jinak to snad ani nemůžeš myslet.
PŘED uložením do databáze bych udělal maximálně to, že bych zkontroloval text, jestli nebyl vložen nějakým robotem (často se snaží zneužívat formuláře na stránkách ve víře, že jsou to mailformy a snaží se tak posílat spam); v tom případě bych ten "příspěvek" rovnou zahodil.
Pokud nepovoluji HTML tagy, tak bych to ještě projel fcí. strip_tags. Potom už bych to uložil do db. htmlspecialchars a nl2br používat zásadně při výpisu ne při ukládání. Co když ten text budeš chtít pak někdy použít nějak jinak (co já vim, třeba nějakej RSS feed). Tam by mohly minimálně <br /> tagy překážet. A nahrazování smiles taky až potom - co když změníš jména/cestu k obrázkům? Projedeš celou databázi a provedeš nahrazení? Nesystémové.
Když už ti tak úzkostlivě jde o zátěž serveru, tak bych použil něco jako cache - měl bych to tam jednou v "originále" a jednou už nahrazený. Pokud by ve sloupci s nahrazeným textem bylo prázdno (nebo spíš NULL) po nějakém zásahu (třeba změna jmen souborů - pak bych cache musel vyNULLovat), tak bych to prostě ve skritpu vygeneroval znovu a konec. Ještě lepší by bylo mít 2 timestampy a porovnávat, pokud by cache verze byla neaktuální (třeba by se příspěvky směly editovat), tak bych při přístím výpisu opět provedl vygenerování nové cache verze.
Pan optimizator uz ked sme pri rychlosti asi nemas ponatia ako je print pomale.
16. 12. 2009
dobry den, pls napiste mi na mail ako sa daju robit rozne znaky tak, aby ssa dali pouzit pri pisani textov.........mail: e.furak@centrum.sk