Dobrý den,
načtení řádků ze souboru do proměnné přes file nakládá jak s
posledním prázdným řádkem? Jelikož mi ho v několika případech bral,
snižoval jsem rozpětí cyklu o 1. Někde mi teď ale místo vymazání
prázdného řádku došlo i na vymazání plného řádku...
Děkuji.
pokud si pamatuju taky jsem mýval problém s posledním řádkem (čtení
souboru jsem nepoužíval hoodně dlouho, všchno jedu přes databázi).
nejidálnější je aby poslední řádek nebyl prázdnej. ukaž tady nějakej
kus zdrojáku a toho fileu u kterýho to blbne ať máme lepší představu co s
tím je....
Aby to bylo úplně jasné - mám historii chatu a v ní se pochybuji
dopředu a dozadu (newer, older), na začátek a konec (start, end) a od
určitého času. Buffer je všude 200 řádků. Takže vždy kontroluji, aby
načtené řádky pasovaly na buffer 200 a současně, aby nedošlo k
přetečení krajů... (index > 0, index < $fileLineCount)
$fileLineCount tu je, abych pořád neusel tahat countem... Unescape je tu
proto, abych mohl používat quote znaky... Díra tam není - na server nikdo
nezná heslo a jméno... (Každý kdo zná heslo a jméno si může číst
jakýkoliv script...) Neznám jiný příkaz, který zabije proces a přitom
vypíše hlášku... Na jeden krátký řádek to opravdu nejde...
pokud si dobře pamatuju zpětné lomítko dělá to že pokud mám nějakej
znak kterej je v tom programovacím jazyku (třeba $ jako proměnná,) tak \
způsobí to že "nezareaguje" ale vypíše se malej přáklad:
$promena = "string";
echo"nyní si vypíšu proměnou \$promena"; //zobrazí se mi nyní si vypíšu proměnou $promena (ne její obsah)
Jak už jsem psal - buď se předveďte, nebo sem nepište... Urážky mi moc
nepomůžou... Vzhledem k tomu, že v této ukázce skoro nic není, tak
nechápu, co na tom může být tak špatně...
Ten text je JSON - je v něm vše důležité... Nač budu v DB zakládat
tabulku s jediným polem pro text? (bude to jedna tabulka s jedním sloupcem, s
jedním řádkem - fakt k užitku...)
Nic proti, ale ve škole jsem používal kratší zdroj a lépe napsaný a to
jsem vypisoval více věcí než jen jeden sloupec z txt. Ale opravdu je lepší
použít db, je to přehlednější a vypsat co kdo napsal je hned a ne na
týden. Ale ok.
Funguje mi to dokonale, rychle atd. Jen jsem chtěl vědět, proč tam
hapruje poslední prázdný řádek. Načež jste mi sdělili, jak je ten kód
špatný. Nikdo ho ale neudělal lépe... A jsem zvědavý jak, když jen čte
řádky souboru...
To je end. Například pro akci join. (to chat) Ale pro procházení historie
to fakt nestačí. A protože je ve formátu JSON + escape, těžko mohu lidi
jen odkázat na onen soubor. Navíc buffer má svůj důvod - aby se na to
nečekalo x let a aby to ta stránka vůbec zvládla...
Protože si ten JSON posílám přes sockety... (Takže nehodlám parsovat
string do ddd formátů - v JS vznikne JS source, přepošlu jeho část, na
serveru vznikne JSON a pošle se všem + se přidá do zásobníku - v Timeru se
pak uloží...)
Ne - není to má DB. Je to DB týmu - já pro tým udělal jen chat a pár
dalších věcí. A z JSON socket z právy to je do DB, ve které se ani omylem
neorientuji sakra daleko... (Takhle jsou data pěkně konzistentí, v
požadovaném tvaru atd. Abych je separoval do sloupců atd., a pak zse
vyzobával - ne děkuji...)
stejně si myslím že bys to měl dělat přes DB. vždyť je to i
bezpečnější. pokud by někdo zjistil kde ten soubor je mohl by si to číst
i někdo neoprávněnej.... to u db těžko....
GoTo je velmi špatně zvolený název návěstí, pokud se v návěstí
parsuje, mělo by se jmenovat asi jinak, ne? Vkládat tak dlouhý kód do větve
switche je blbost, měla by se tam volat metoda. Pomocí reflexe můžeš dát
ten switch tam, kam patří - pryč.
$value = "[\"".$_GET["time"]."\",\"";
Co jsou ta lomítka? Co třeba otevřít jednoduché uvozovky místo
dvojitých?
$file = file("History\\".$_GET["file"]);
To jako vážně? Necháš si zpracovat libovolný soubor co uživatel zadá?
Asi chceš, aby ti to někdo hacknul.
$noFound = true;
To je názvosloví a navíc k ošetření chyb jsou výjimky.
Tady jsem málem spadl pod stůl, smrtící kombinace die alert je opravda skvělý
způsob pro zpracování chyby s kombinací s proměnnou noFound (ano, je to
ironie).
Tu URL nikdo nikdy neuvidí. To souvisí s tím pojmenováním - nebude takto
lidské, ale takové, aby si tu URL nikdo nemohl ani tipnout... Navíc je
uvnitř AJAXu obfuscovaného JS... Dále explode("\n",
file_get_contents('file.txt')) - a co asi udělá file??? (s mnohem kratším
kódem) Jaká výjimka mi vznikne? Musel bych ji udělat, jenže nemám pod
kontrolou interpreter - takže stejně bych to nechytal tam, kde mám. Stejně
se nezbavím větvení - výjimku bych musel vytvářet - to věc moc
nezachraňuje... Prostě hledáš jen kraviny...
Ale nejvtipnější na tvém komentu je, že jsi nahradil část kódu jen
jeho částí - a napsal jsi, že ať se zbytek udělá...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.