NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Mezinárodní den IT společnosti je tady! Pouze nyní můžeš získat 90 % extra kreditů při nákupu od 1199 kreditů s promo kódem AJTACI90. Tak neváhej!
Avatar
matesax
Tvůrce
Avatar
matesax:7.9.2013 15:10

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.

 
Odpovědět
7.9.2013 15:10
Avatar
Snorlax
Tvůrce
Avatar
Snorlax:7.9.2013 15:24

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....

Nahoru Odpovědět
7.9.2013 15:24
Kdo chce pochopit, pochopí. Kdo dělá že chce pochopit, může pouze dělat, že pochopil...
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:7.9.2013 15:31

Co kdyby sis to vyzkoušel?

Když na konec souboru přidám 5 prázdných řádek, funkce file() mi načte všech 5.

Nevím, k čemu je dobré snižovat rozpětí cyklu o 1 a ani netuším, jak se to ve foreach dělá.

Nahoru Odpovědět
7.9.2013 15:31
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Snorlax
Kit:7.9.2013 15:33

Ten tvůj avatar je mýval? To jsem netušil.

Nahoru Odpovědět
7.9.2013 15:33
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Snorlax
Tvůrce
Avatar
Odpovídá na Kit
Snorlax:7.9.2013 15:34

:D nevim jestli to mám brát jako urážku nebo neznalost -_- :D

Nahoru Odpovědět
7.9.2013 15:34
Kdo chce pochopit, pochopí. Kdo dělá že chce pochopit, může pouze dělat, že pochopil...
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:7.9.2013 15:37

Jak jsem psal, také se mi počítal i prázdný poslední řádek. Ovšem někde:

case "goTo":

        $value = "[\"".$_GET["time"]."\",\"";

        $file = file("History\\".$_GET["file"]);

        $fileLineCount = count($file) - 1;

        $noFound = true;

        $index = 0;

        while($index < $fileLineCount)
        {
                if(strpos($file[$index], $value) === 0)
                {
                        $noFound = false;
                        break;
                }

                $index++;
        }

        if($noFound)
                die("alert('Nenalezeno!');");

        echo "olderButton.disabled=false;bufferStart=$index;rows=0;room.innerHTML=defaultValue;";

        $nextIndex = $index + 200;

        $length = $nextIndex < $fileLineCount ? $nextIndex : $fileLineCount + 1;

        while($index < $length)
        {
                echo "parseMessage('".substr($file[$index], 0, -1)."');";

                $index++;
        }

break;
$length = $nextIndex < $fileLineCount ? $nextIndex : $fileLineCount + 1;

Jak vidno musím tu jednotku zase připočíst. Tak nechápu, o co GO...

Editováno 7.9.2013 15:38
 
Nahoru Odpovědět
7.9.2013 15:37
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Snorlax
Kit:7.9.2013 15:37

Asi obojí :)

Nějak mi ten tvůj obrázek nepasoval s výrokem "pokud si pamatuju taky jsem mýval".

Nahoru Odpovědět
7.9.2013 15:37
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:7.9.2013 15:43

No nazdar.

  • K čemu tam máš ten $fileLineCount?
  • Co tam dělají zpětná lomítka?
  • Co ta bezpečnostní díra? Aby si návštěvník mohl pročítat tvé PHP skripty?
  • K čemu je die()? To už se přece nepoužívá
  • Konstanta "200" vypadá také podivně. Zřejmě nějaký nesmysl
  • Je nějaký důvod, proč ten skript nemáš na jednom krátkém řádku?
Nahoru Odpovědět
7.9.2013 15:43
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Tvůrce
Avatar
matesax:7.9.2013 15:46

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)

 
Nahoru Odpovědět
7.9.2013 15:46
Avatar
Snorlax
Tvůrce
Avatar
Odpovídá na Kit
Snorlax:7.9.2013 15:47

:D ikdyž to byl vtip na můj účet tak i přesto se směju jak magor v blázinci :D

Nahoru Odpovědět
7.9.2013 15:47
Kdo chce pochopit, pochopí. Kdo dělá že chce pochopit, může pouze dělat, že pochopil...
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:7.9.2013 15:49

No nazdar - chci tě vidět... :D

$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...

Editováno 7.9.2013 15:50
 
Nahoru Odpovědět
7.9.2013 15:49
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na matesax
David Hartinger:7.9.2013 15:53

Tak tohle je husté, trvalo by mi hodiny vymyslet aby byl ten kód tak špatný. Přemýšlím jestli je na tom vůbec něco dobře.

Nahoru Odpovědět
7.9.2013 15:53
New kid back on the block with a R.I.P
Avatar
Snorlax
Tvůrce
Avatar
Odpovídá na Kit
Snorlax:7.9.2013 15:54

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)
Nahoru Odpovědět
7.9.2013 15:54
Kdo chce pochopit, pochopí. Kdo dělá že chce pochopit, může pouze dělat, že pochopil...
Avatar
matesax
Tvůrce
Avatar
Odpovídá na David Hartinger
matesax:7.9.2013 15:58

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ě...

 
Nahoru Odpovědět
7.9.2013 15:58
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:7.9.2013 16:02

Právě. Vůbec netušíme, co ten zmatečný kód vlastně má dělat. Pokud nám to prozradíš, tak ti možná poradíme.

A ten count() je tak k čemu?

Editováno 7.9.2013 16:03
Nahoru Odpovědět
7.9.2013 16:02
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:7.9.2013 16:05

Ke zjištění počtu řádků? Chci vypsat buffer 200 řádků od určitého času... Pokud nebude možné buffer naplnit, tak ať... (proto count)

 
Nahoru Odpovědět
7.9.2013 16:05
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Snorlax
Kit:7.9.2013 16:05

To vím. matesax těch zpětných lomítek má na můj vkus až příliš mnoho. Zejména v cestě by vůbec neměla být.

Nahoru Odpovědět
7.9.2013 16:05
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Snorlax
Tvůrce
Avatar
Odpovídá na matesax
Snorlax:7.9.2013 16:07

a nebylo by jednoduší to prostě udělat přes databázi? (pokud teda bobře chápu že děláš chat)

Nahoru Odpovědět
7.9.2013 16:07
Kdo chce pochopit, pochopí. Kdo dělá že chce pochopit, může pouze dělat, že pochopil...
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Snorlax
matesax:7.9.2013 16:10

Historie je holý text - není důvod proč použít DB... (Ukládám skutečně jen text - ne autory, nic...)

 
Nahoru Odpovědět
7.9.2013 16:10
Avatar
Snorlax
Tvůrce
Avatar
Odpovídá na Snorlax
Snorlax:7.9.2013 16:10

už vidim jak se mě Kit teptá jestli jsem i bobr :D

Nahoru Odpovědět
7.9.2013 16:10
Kdo chce pochopit, pochopí. Kdo dělá že chce pochopit, může pouze dělat, že pochopil...
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Snorlax
Kit:7.9.2013 16:11

matesax zřejmě netuší, jak se databáze používají :)

Nahoru Odpovědět
7.9.2013 16:11
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Snorlax
Tvůrce
Avatar
Odpovídá na matesax
Snorlax:7.9.2013 16:12

a proč to tak děláš? ty nechceš vedět co kdo napsal? pokud máš v plánu lidem "ukazovat" historii tak vypíšu jen ten jednen sloupec...

Nahoru Odpovědět
7.9.2013 16:12
Kdo chce pochopit, pochopí. Kdo dělá že chce pochopit, může pouze dělat, že pochopil...
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:7.9.2013 16:12

Historie je holý text - to je ten pravý důvod, proč použít DB.

Nahoru Odpovědět
7.9.2013 16:12
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Snorlax
matesax:7.9.2013 16:14

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...)

 
Nahoru Odpovědět
7.9.2013 16:14
Avatar
Odpovídá na matesax
Neaktivní uživatel:7.9.2013 16:14

i kdyby ten text byl třeba chlupatý, tak i tak se to dá uložit do databáze :D

Nahoru Odpovědět
7.9.2013 16:14
Neaktivní uživatelský účet
Avatar
Snorlax
Tvůrce
Avatar
Odpovídá na matesax
Snorlax:7.9.2013 16:15

a co chceš ukládat do databází? obrázky? videa? :D

Nahoru Odpovědět
7.9.2013 16:15
Kdo chce pochopit, pochopí. Kdo dělá že chce pochopit, může pouze dělat, že pochopil...
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Snorlax
matesax:7.9.2013 16:17

Jak jsem psal - nač ukládat jediný řádek do DB? Nejen, že budu parsovat nové řádky, ale ještě to tahat z DB - děkuji...

ukládat chci hesla, jména uživatelů, jména dd, produkty, hashe,... Ale jeden řádek s jednou hodnotou s x řádky fakt ne...

Editováno 7.9.2013 16:18
 
Nahoru Odpovědět
7.9.2013 16:17
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:7.9.2013 16:18

Takových DB tabulek mám hromadu. A fakt: Jsou mi k užitku.

Jen se raději vyhýbám 0NF. Nebyla by to zrovna nejlepší vizitka.

Nahoru Odpovědět
7.9.2013 16:18
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Pavel Mareš
Tvůrce
Avatar
Pavel Mareš:7.9.2013 16:19

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.

Nahoru Odpovědět
7.9.2013 16:19
Však ono půjde ...
Avatar
Snorlax
Tvůrce
Avatar
Odpovídá na matesax
Snorlax:7.9.2013 16:20

tak pořád lepší jednosloupcová tabulka, než takovejhle zdroj (a k tomu nefunkční...)

Nahoru Odpovědět
7.9.2013 16:20
Kdo chce pochopit, pochopí. Kdo dělá že chce pochopit, může pouze dělat, že pochopil...
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:7.9.2013 16:20

Tahání dat z DB je rychlejší než otevírání souboru.

A to parsování tam děláš kvůli čemu?

Editováno 7.9.2013 16:21
Nahoru Odpovědět
7.9.2013 16:20
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Snorlax
matesax:7.9.2013 16:22

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...

Editováno 7.9.2013 16:22
 
Nahoru Odpovědět
7.9.2013 16:22
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:7.9.2013 16:22

JSON?

 
Nahoru Odpovědět
7.9.2013 16:22
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:7.9.2013 16:24

Nebylo by jednodušší načíst jen posledních 200 řádek?

Nahoru Odpovědět
7.9.2013 16:24
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:7.9.2013 16:26

JSON se na příkazový zásobník moc nehodí.

Nahoru Odpovědět
7.9.2013 16:26
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:7.9.2013 16:28

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...

 
Nahoru Odpovědět
7.9.2013 16:28
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:7.9.2013 16:28

JSON není na žádný zásobník - JSON je pro uchování pole JS... (V poli je jméno, datum,...) Příkazy jsou prováděné ihned...

 
Nahoru Odpovědět
7.9.2013 16:28
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:7.9.2013 16:31

Kde tam máš v aplikaci použité pole?

Nahoru Odpovědět
7.9.2013 16:31
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Tvůrce
Avatar
matesax:7.9.2013 16:32

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ží...)

 
Nahoru Odpovědět
7.9.2013 16:32
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:7.9.2013 16:33
$value = "[\"".$_GET["time"]."\",\"";

["00:00",

Je začátek pole - za ním je barva, nick a zpráva... (["00:00", "black", "Sam", "escape"])

 
Nahoru Odpovědět
7.9.2013 16:33
Avatar
Odpovídá na matesax
Neaktivní uživatel:7.9.2013 16:35

Po velice dlouhém zamyšlení mi to stále nepřijde na řádek databáze s jedním sloupcem.

Nahoru Odpovědět
7.9.2013 16:35
Neaktivní uživatelský účet
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Kit:7.9.2013 16:36

Také vidím minimálně 4 sloupce.

Nahoru Odpovědět
7.9.2013 16:36
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Neaktivní uživatel:7.9.2013 16:39

Řekl mu někdo, že v databázi může být více sloupců?

Nahoru Odpovědět
7.9.2013 16:39
Neaktivní uživatelský účet
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Kit:7.9.2013 16:43

Pochybuji. Myslíš si, že tuší o tom, že tabulka může mít i víc řádek?

Nahoru Odpovědět
7.9.2013 16:43
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Neaktivní uživatel:7.9.2013 16:44

Já bych z toho nedělal velkou revoluci, na tohle ještě svět není připraven.

Nahoru Odpovědět
7.9.2013 16:44
Neaktivní uživatelský účet
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Kit:7.9.2013 16:48

Také marně přemýšlím, k čemu je tam ta barva. Dávat styly pro zobrazování do datového modelu - to chce vážně pořádný kus odvahy.

Nahoru Odpovědět
7.9.2013 16:48
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Neaktivní uživatel:7.9.2013 16:50

Té je tu dost, to problém nebude :)

Nahoru Odpovědět
7.9.2013 16:50
Neaktivní uživatelský účet
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:7.9.2013 16:56

Však ty určitě jednou socket zprávou pošleš zvlášť barvu nicku a nick - já ne...

Mimochodem useři již v DB jsou a mají hned několik tabulek - natož sloupců...

Editováno 7.9.2013 16:57
 
Nahoru Odpovědět
7.9.2013 16:56
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:7.9.2013 17:00

A mají ti tví useři v DB i barvu?

Nahoru Odpovědět
7.9.2013 17:00
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:7.9.2013 17:02

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...)

 
Nahoru Odpovědět
7.9.2013 17:02
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.

Zobrazeno 50 zpráv z 54.