Stránka: 2 z 2
| [ Príspevkov: 59 ] | 1, 2 |
Autor | Správa |
---|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 | 127 Bydlisko: Lehota pod ... |
No dobre to som teda pochopil, aj keď ja by som to preskočil, lebo netvorím prehliadač, ani programovací jazyk.
Asi ma nakoniec prinútiš to akceptovať...
Ale fakt by sa to nedalo urobiť po mojom???
V skratke:
Ja chcem spraviť búdu pre psa a ty mi rozprávaš o drevárskom priemysle. Ale to sa predsa dá urobiť s pílkou a kladivom...
Fakt nezľavíš zo svojho prístupu?
|
|
Registrovaný: 29.10.08 Prihlásený: 30.07.12 Príspevky: 933 Témy: 2 | 2 |
tu nejde o moj pristup, tu ide oto ze zadavatel ulohy to chce od teba riesenim pomocou tried  keby neslo oto tak zbehlejsi koder by to urobil replacovanim pomocou regularneho vyrazu 
|
|
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 | 233 Bydlisko: Nové Zámky |
camo píše: No veď to(viac rozmerné pole) je medzikrok, ktorý tam je úplne navyšše a okrem toho to generovanie viacrozmerného poľa určite bude vyzerať z pohľadu prehľadnosti kódu zversky. A v druhom kroku ho zase budeš prechádzať čo je druhý nadbytočný krok.
A ked budes chciet zmenit HTML vystup ?? Tak sa budes vrtat v kode, ktory rozoznava jednotlive leveli a tam budes hladat medzi regulernymi vyrazmi este aj HTML tagy a rozne to prepisovat hore dole...
Ked mas pole, krasne ho len prechadzas a jeho hodnoty obklopujes HTML tagmi..
Schvalne, si skus zmerat, kolko milisekund rozdielu tam bude a ci ti to stoji za to..
_________________ "It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď |
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 | 127 Bydlisko: Lehota pod ... |
No na localhoste sú rozdiely vo výkone zanedbateľné, ale čo na hostingu kde sú userov stovky? Tam to bude tiež také ružové?
Som sa v knihe dočítal, že práca s poľami a triedami nieje taká jednoduchá(pre server).
|
|
Registrovaný: 29.10.08 Prihlásený: 30.07.12 Príspevky: 933 Témy: 2 | 2 |
Camo, ty si niekde cital o inej verzi PHP pre server a inej pre desktop ?
v ktorej knihe si nieco take cital ?
ohladom skalovatelnosti, pre majitela webu je lacnejsie rozsirit vykon servera ako platit zbytocne hodiny developerom aby prekopavali a zliepali neprehladny a nemodularny soft.
kedysi som robil pre znameho z USA jeden softik v delphi, bol snim spokojny no po case sa ozval ze potrebuje nieco obdobne no pre iny HW ale ze ktomu HW uz maju aj activeX komponent. som mu povedal nech radsej zozenie viac info o HW a ze mu nakodim ten soft bez nutnosti pouzitia activx komponenty ktora ma plno funkcionalit ktore aj tak nevyuzijeme a iba zaberaju miesto v pamati. odpovedal mi "problem SW firiem na Slovensku a viacmenej v europe je vtom ze sa snazia setrit pamat, no pamat je lacnejsia ako praca programatora".
EDIT: apropo ked uz sa tu prebera vykon pri paralelnom pristupe viac uzivatelov. tu je cast tvojho kodu :
Kód: $source=file('sourcedata.txt');
cize ak som dobre precital manual, tak prikaz file() nacita obsah suboru do pola!!! nebolo by supis, brutal rychlejsie otvorit si subor cez fopen a potom nacitavat jednotlive riadky pomocou fgets ? server by to urcite potesilo, hlavne keby to takto robilo niekolko procesov naraz a disk by sa mohol po... keby mal kazdemu davat data po jednom riadku(lepsie povedane po blokoch)
|
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 | 127 Bydlisko: Lehota pod ... |
Kód: prikaz file() nacita obsah suboru do pola!!!
No ale ten príkaz file() je predsa optimalizovaný práve na túto záležitosť. Ak to čo čítam chápem dobre, tak je rozdiel použiť zabudovaný príkaz a písať funkciu ktorá robí to isté.
Chceš povedať, že na bežnom hostingu je možné priplatiť si za rozšírenie pamäťe?
|
|
Registrovaný: 29.10.08 Prihlásený: 30.07.12 Príspevky: 933 Témy: 2 | 2 |
camo píše: Kód: prikaz file() nacita obsah suboru do pola!!! No ale ten príkaz file() je predsa optimalizovaný práve na túto záležitosť. Ak to čo čítam chápem dobre, tak je rozdiel použiť zabudovaný príkaz a písať funkciu ktorá robí to isté. netvrdim ze nieje optimalizovany, len hovorim ze tiez pouzivas pole na docasne ulozenie dat aj ked nieco take povazujes za neoptimalne. alebo to iba vtedy ak to tebe vyhovuje ? camo píše: Chceš povedať, že na bežnom hostingu je možné priplatiť si za rozšírenie pamäťe? na beznom hostingu ? co je podla teba bezny hosting ? free webhosting? komercny webhosting? virtualserver hosting ? server housing ?
|
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 | 127 Bydlisko: Lehota pod ... |
Citácia: co je podla teba bezny hosting ? free webhosting? komercny webhosting? virtualserver hosting ? server housing ?
Komerčný hosting...
O tých ďalších som zatiaľ nechyroval...
Ale sa netvár, že si nepochopil, že tu nejde o používanie polí, ale o to, ako ich používaš. Bavili sme sa o písaní funkcií a o vstavaných fukciách.
Asi som sa zle vyjadril ohľadne tých polí a nemusíš ma hneď chytať za slovíčka.
Takže keď sa na to pozrieš z pohľadu toho komerčného hostingu toho čo tu bolo popísané, tak to vidíš ako? Môžem si dovoliť sa rozťahovať?
Čo hovoríš na toto: http://georgik.sinusgear.com/tag/php/
|
|
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 | 233 Bydlisko: Nové Zámky |
camo píše: Takže keď sa na to pozrieš z pohľadu toho komerčného hostingu toho čo tu bolo popísané, tak to vidíš ako? Môžem si dovoliť sa rozťahovať? Čo hovoríš na toto: http://georgik.sinusgear.com/tag/php/
Prepac, ale ked uz ides robit mega-gigi super ultra aplikaciu, ktora bude mat niekolko tisic navstev za minutu, tak preco sa trepes do klasickeho komercneho zdielaneho hostingu ???
A skusal si si uz konecne overit, kolko ta tvoja aplikacia zere ??
_________________ "It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď |
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 | 127 Bydlisko: Lehota pod ... |
Vy ste tu všetci ohromne múdri...
Len mi povedz o čom bol teda ten článok....
A či je normálne, že sa na to pýtam, keď sa dočítam takéto veci. Mne to príde normálne... Lebo proste to neviem posúdiť. Tak isto ako keď si sa ty pýtal, prečo sa ti tvoj floatovaný layout rozpadá...
Ten článok bol akože o ,,mega-gigi super ultra aplikacii,,???
|
|
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 | 233 Bydlisko: Nové Zámky |
Jezisi maria ! Ja to myslim vazne, ze si otestuj pamatovu naracnost tej tvojej aplikacie ! A zistis sam, co je dobre a co nie..
_________________ "It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď |
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 | 127 Bydlisko: Lehota pod ... |
Myslím, že na to existuje nejaká funkcia ,ale netuším ktorá...
A pokoj, pokoj čo budeš robiť, keď sa tu niekto opýta ako vycentrovať CSS menu??? 
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
Mali by ste tu riesit optimalizaciu kodu tvojej triedy a nezachadzat bohvie kam. Takze camo, slubil si sem hodit upraveny kod triedy, ktory je podla teba viac optimalizovany, ale zatial tu nic nie je, a rozoberate tu nepodstatne veci, ktore s tvojou ulohou nemaju nic spolocne...
Bud sa tu bude riesit to, co sa ma, alebo sa to zamkne a bude pokoj...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 29.10.08 Prihlásený: 30.07.12 Príspevky: 933 Témy: 2 | 2 |
stenley, toho noveho kodu sa asi nedockame. ani by som sa necudoval ked camo najprv hodi linku na stranku ktora pise ako si otestovat vyuzitie pamate http://georgik.sinusgear.com/tag/php/ a o par prispevkov neskor pise : camo píše: Myslím, že na to existuje nejaká funkcia ,ale netuším ktorá...
|
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 | 127 Bydlisko: Lehota pod ... |
Prisahám, že to napíšem!!!
A to sa ti coldak podarilo. Mal som ten link totiž v záložkách, a už som nevedel, čo všetko sa tam píše....
Takže moja úloha znie optimalizovať výkon tej ohavnosti, čo som spáchal
Toto môžete zmazať ak je to nežiadúce. A ospravedlňujem sa adminovi za opotrebovanie prstíkov, pri tom odstraňovaní.
Nabudúce už len kód(len to bude trochu trvať, lebo rozbieham projekt http://web.php5.sk ...  )
|
|
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 | 233 Bydlisko: Nové Zámky |
camo píše: Myslím, že na to existuje nejaká funkcia ,ale netuším ktorá...
Ty citas tie odkazy vobec, ktore sem davas ?
http://georgik.sinusgear.com/tag/php/
Kód: Veď je to tak jednoduché zístiť, koľko vaša aplikácia spotrebuje pamäte: echo memory_get_usage() . "\n";
atd..
Dalej si vies zmerat cas...
Zmerias cas na zaciatku dokumentu, potom tvojou triedou daj spracovat nieco v cykle, napriklad 100 krat za sebou a potom znova odmeraj cas a odcitaj ich..
Uvidis vysledok - rozdiel dvoch casov..
Potom nieco zmen v tej triede, napriklad file() a fopen() a zas to spusti.. Uvidis rozdiel..
_________________ "It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď |
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 | 127 Bydlisko: Lehota pod ... |
No tak som to zlátal. Je to o niečo lepšie?
Kód: <?php class catalog {
var $Gsource; var $Glevel;
public function loadSource($param) { $this->Gsource=file($param); }
public function renderMenu() { $this->Glevel=0; foreach($this->Gsource as $item) { $item=trim($item); $this->renderItem($item); } $item='**END**'; $this->renderItem($item); }
private function renderItem($item) { $lev=strspn($item,'-'); if($lev > $this->Glevel) { echo "\n<ul>\n\t<li>$item"; $this->Glevel=$lev; } else if($lev == $this->Glevel) { echo "</li>\n\t<li>$item"; // level netreba nastovat lebo == } else if($lev < $this->Glevel) { $levCk=$lev; // $levCk - pre potreby tohoto cyklu do { // ukoncuje otvorene urovne echo "</li>\n</ul>\n</li>"; $levCk++; } while($levCk < $this->Glevel); if($item!='**END**') echo "\n\t<li>$item"; $this->Glevel=$lev; } } } ?>
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
no vidis, ze sa to da, oproti prvemu pokusu je to ovela prehladnejsie a s mensim objemom kodu, ale stale je tam co doladovat... inak, renderItem() ti zle uzatvara urovne, ak sa skoci napr. z tretej na prvu...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 | 233 Bydlisko: Nové Zámky |
No a hlavne tam pomlcky zostavaju 
_________________ "It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď |
|
Registrovaný: 29.10.08 Prihlásený: 30.07.12 Príspevky: 933 Témy: 2 | 2 |
a naco je tam trim? Kód: $item=trim($item);
|
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 | 127 Bydlisko: Lehota pod ... |
Stenley:
S tým uzatváraním úrovní som sa teda dobre potrápil. Ale u mňa, keď som si dal na <ul> border tak bolo všetko OK. Tak som trochu zmetený...
A čo by sa tam malo ešte doladiť?
Coldak:
Chcel som, aby ten kód nejako vyzeral aj v prehliadačoch, a aj keď sa to nezdá, môže to byť ešte horšie...
Blackshadow:
Tentokrát to bol úmysel, lebo sa to tak lepšie číta a kontroluje...
|
|
Registrovaný: 29.10.08 Prihlásený: 30.07.12 Príspevky: 933 Témy: 2 | 2 |
camo píše: Stenley: S tým uzatváraním úrovní som sa teda dobre potrápil. Ale u mňa, keď som si dal na <ul> border tak bolo všetko OK. Tak som trochu zmetený... A čo by sa tam malo ešte doladiť? toto je vysledny html kod. si si isty ze je kosher ? Kód: <ul> <li>-TV, audio, video <ul> <li>--LCD televízory <ul> <li>---JVC</li> <li>---LG</li> </ul> </li> <li>--LED televízory</li> <li>--Prehrávače <ul> <li>---Bluray prehrávače</li> <li>---DVD prehrávače</li> </ul> </li></li> </ul> </li> <li>-Veľké spotrebiče <ul> <li>--Práčky</li> <li>--Sušičky</li> <li>--Chladničky <ul> <li>---voľne stojace</li> <li>---vstavané</li> </ul> </li> <li>--Sporáky</li> </ul> </li></li> </ul> </li> camo píše: Coldak: Chcel som, aby ten kód nejako vyzeral aj v prehliadačoch, a aj keď sa to nezdá, môže to byť ešte horšie...
chcel si odstranit znak "\n" z nacitaneho obsahu?
precital si si poriadne syntax prikazu "file" ?
http://sk.php.net/manual/en/function.file.php
naco asi tak sluzi flag "FILE_IGNORE_NEW_LINES"? manual tvrdi : "Do not add newline at the end of each array element"
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
camo píše: Stenley: S tým uzatváraním úrovní som sa teda dobre potrápil. Ale u mňa, keď som si dal na <ul> border tak bolo všetko OK. Tak som trochu zmetený... A čo by sa tam malo ešte doladiť?
Zjednodusit kod a odstranit problemy so spravnym uzatvaranim urovni by si velmi jednoducho mohol vyriesit pomocou rekurzivnej metody...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 | 127 Bydlisko: Lehota pod ... |
stenley:
No jó no rekurzia....
... je keď fcia volá sama seba... chcel som to tak urobiť, ale nevedel som ako.... Ak by si fakt nemal čo robiť tak a bol by si tak šľachetný a udatný  , tak by som to rád videl, lebo si to neviem predstaviť. Pošlem 1kg čokolády podľa vlastného výberu, lebo by som sa to potreboval naučiť...
coldak:
Ty si sa zrejme ani nenarodil, teba rodičia kúpili v obchode s počítačmi nie???
Mám doma jeden taký script na výpis adresára, kde mám rekurziu, ale na to menu som to nevedel namontovať:
Kód: <ul> <?php $what="."; adresar($what);
function adresar($what) { $blacklistADR=array('..','.'); $open=opendir($what."/"); while($item=readdir($open)) { if(is_dir($item) and in_array($item,$blacklistADR)) continue; if(is_dir($item)) { echo "<li><span class=\"red\">$item /adresar/</span><ul>\n"; echo adresar($what."/".$item); } else echo "<li><a href=\"".$what."/".$item."\">$item</a></li>\n"; } echo "</ul>"; } ?> </ul>
|
|
Registrovaný: 29.10.08 Prihlásený: 30.07.12 Príspevky: 933 Témy: 2 | 2 |
camo: nemohli ma kupit, lebo ja som na nezaplatenie, ale obcas som na zaplakanie
aby si nepovedal, ze som nebodaj z utulku(cize pes), tak som si dal trochu namahy a par hodin som studoval PHP aby som ti mohol poslat nejaky example.
Kód: <?php interface ICatalog { public function load($conf); public function render(); } class TCatalog implements ICatalog { private $data=array(); private $stack = array(); static public function cast(TCatalog $object) { return $object; } private function getLevel($txt) { return strspn($txt,"-"); } private function addNode($sublevel,$line) { $subarr = array($line); $this->stack[$sublevel]= &$subarr; array_push($this->data,&$subarr); }
private function addSubNode($sublevel,$line) { $subarr = array($line); $this->stack[$sublevel]= &$subarr; array_push($this->stack[$sublevel-1],&$subarr); } public function load($conf){ $level=1; $handle = fopen($conf, "r"); while (!feof($handle)) { $line = &fgets($handle); $sublevel = $this->getLevel($line); $line = trim(ltrim($line,"-")); if ($level==$sublevel) { $this->addNode($sublevel,$line); } if ($level<$sublevel) { $this->addSubNode($sublevel,$line); } } fclose($handle); } protected function prn($arr,$level) { $cnt = &count($arr); $level++; echo str_repeat(" ", $level)."<UL>\n"; for ($i=1;$i<$cnt;$i++) { echo str_repeat(" ", $level)."<LI>".$arr[$i][0]."</LI>\n"; if (count(&$arr[$i])>1) { $this->prn(&$arr[$i],$level); } } echo str_repeat(" ", $level)."</UL>\n"; } public function render(){ $this->prn($this->data,0); } } $catalog = new TCatalog(); $catalog->load("menu.txt"); echo "<html>\n<body>\n"; $catalog->render(); echo "</body>\n</html>\n"; echo memory_get_peak_usage(); ?>
kedze v PHP mam asi dvojdnove skusenosti tak budem rad ak mi manici v PHP napisu co by sa dalo urobit lepsie. dik
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
camo píše: stenley: No jó no rekurzia.... ... je keď fcia volá sama seba... chcel som to tak urobiť, ale nevedel som ako.... Ak by si fakt nemal čo robiť tak a bol by si tak šľachetný a udatný  , tak by som to rád videl, lebo si to neviem predstaviť. Pošlem 1kg čokolády podľa vlastného výberu, lebo by som sa to potreboval naučiť...
tu mas rekurzivnu metodu, co som napisal pred par dnami, ktora ti korektne vygeneruje cely zoznam.
Mensi popis: $content vzdy obsahuje pole poloziek jednej urovne v danej vetve (napr. TV, audio, video a Veľké spotrebiče). V cykle sa postupne cez ne prechadza a kontroluje, ci dana polozka obsahuje dalsi vnoreny zoznam. Ak ano (to je ta podmienka if), metoda zavola samu seba s tym, ze ako svoj parameter uvedie pole poloziek vnoreneho zoznamu najvyssej urovne. Jednoduche, nie?
Kód: private function _genMenu($content) { if(empty($content)) { return; } echo '<ul>'; foreach($content as $key => $value) { $level = $this->_getLevel($key); echo '<li>'.substr(trim($value), $level); if($this->_hasChild($key, $level)) { $this->_genMenu($this->_getChildren($key, $level)); } echo '</li>'; } echo '</ul>'; }
PS: cokoladu mi posielat nemusis
>coldak: tvoj kod u mna vygeneruje len druhu polovicu stromu a hlasi zopar chyb s referenciami.
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 | 127 Bydlisko: Lehota pod ... |
Díky moc, ten zvyšok okolo toho skúsim domyslieť sám, to hádam zvládnem....
PS: Nieje tá coldakova metóda s použitím fopen problematická?! Myslím na súperenie dvoch stránok o prístup k súboru. Tak som to nejako čítal v knihe, ale v manuály som nič také nevidel....
Naposledy upravil camo dňa 01.09.2010 11:21, celkovo upravené 1
|
|
Registrovaný: 29.10.08 Prihlásený: 30.07.12 Príspevky: 933 Témy: 2 | 2 |
stenley sorac, este na poslednu chvilku som robil nejake pokusy a vymazal som inicializacny prvok pola takze spravne by malo byt Kód: class TCatalog implements ICatalog { private $data=array("root"); private $stack = array();
edit: ako nastavim php aby mi hlasilo aj chyby referencii ?
edit2: uz som si to nastavil, tie warnings su otom ze cez referenciu na objekt si ho modifikujem, ale to je zamer.
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
>camo: zvysok je uz malina, najvacsi "problem" je prave to generovanie spravneho vnorenia zoznamov... kedze len citas zo suboru a nijak ho nemodifikujes, tak by nemal byt problem s pristupom k jeho obsahu...
>coldak: je to deprecated, takze by som to uz radsej nepouzival, aj ked sa to da zmenit v php.ini...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Stránka: 2 z 2
| [ Príspevkov: 59 ] | 1, 2 |
|