Jump to content
php.lv forumi

DarkSide

Reģistrētie lietotāji
  • Posts

    92
  • Joined

  • Last visited

Everything posted by DarkSide

  1. Sveiki! Vai ir kādas idejas kādēļ lieli foreach cikli norij nenormāli daudz servera (Apache procesa) RAM atmiņas. Lietoju, Apache 1.3.x, PHP 4.x, Win2K. Skripts ir piemēram šāds: foreach($arrData['DEPARTMENTS'] as $did=>$dvalue) { foreach($dvalue['CONTRACTS'] as $cid=>$cvalue) { foreach($cvalue['ORDERS'] as $oid=>$ovalue) { echo "$did, $cid, $oid"; } } } Ideja tāda, ka man ir viens liels strukturēts masīvs $arrData, ko man ir jāparsē cauri un kautkas ar tiem datiem jāizdara (piemēram, jāizdrukā uz ekrāna). Ejot cauri šiem foreachiem Apache aprij ~200Mb RAM!! :-))) Ko tā? Reāli taču RAMu apēst nevajadzēja praktiski nemaz, jo katrā ciklu solī es papildus jau esošajam $arrData masīvam izveidoju principā tikai vienu mainīgo... lai gan piemēram $dvalue sanāk riktīgi liels... hmm... ok - padomāšu pats vēl par šo tēmu, bet anyway varbūt ir kādi noderīgi komentāri par foreach optimizāciju (uz PHP4).
  2. Gribēju vērsties pie Jums ar jautājumu. Vai kādam ir izdevies noģenerēt sakarīgu HTML (XHTML) vienā failā, ko Excelis māk ielasīt vairākos WorkSheets? Ideja tāda, ka man ir uztaisīts softs, kas atskaites ģenerē (ne ar PHP, bet Oracli, bet tas nav būtiski) uz HTML (XHTML) ar atbilstošo header un līdz ar to tās veras vaļā Excelī un viss rullē. Problēma ir tāda, ka nekādi nevaru izdomāt kādu HTMLu ģenerēt, lai atskaiti atverot Excelī būtu vairāki WorkSheets... No Exceļa puses tādu izveidojot un saglabājot tiek ģenerēti vairāki faili ar frameset un ??JavaScript, kas man nafig nav vajadzīgi... Vai to vispār var izdarīt ar viena HTMLa palīdzību? Kādas idejas?
  3. A PHP kā CGI strādā labi? Cik esmu lasījis, tad itkā tas CGI variants esot toļi gļukains toļi liela bremze... Vai tad tā nav?
  4. Zinu jau ka būtu forši pāriet uz PHP5, bet ko lai dara, ka lielākā daļa projektu, kas man ir tikuši pasūtīti tika pasūtīti taisīt tieši PHP4... :( Tas ir skaidrs - izlasīju precīzāk tagad. Sorry :) Ups - patiešam - thanx ka norādīji uz nepilnību. Viss jau būtu forši, bet problēma ir tāda, ka ne vienu vien projektu esmu taisījis uz PHP4, kur samērā biezā slānī izmantoju līdzīgas konstrukcijas kā augstākesošajā koda gabaliņā. Doma bija neko daudz nepārkodējot pārcelt šos projektus uz PHP5. Cik saprotu tad vienīgais risinājums ir ze1-compatibility-mode norādīšana, bet tad atkal sūdīgi tas, ka tas attieksies uz visiem (arī nākotnē jau uz PHP5 veidotiem) projektiem :(Rezultātā sanāk tā, ka principā man sanāk uzturēt vecos projektus uz PHP4 anyway un jaunos jau taisīt uz PHP5, bet atkal probza - PHP4 un PHP5 cik lasīju īsti nemāk sadzīvot abi uz viena webservera... (vismaz Apache vajag 2 instances tad turēt)... Stulbi :( Kāda ir Jūsu pieredze ar PHP4 veidotu projektu pārcelšanu uz PHP5? Varbūt kādi ieteikumi?
  5. Sveiki! Skat. sekojošu koda gabaliņu. Principā visa problēma aprakstīta jau pašā kodā: <?php // Class definitions class c_parent { function c_parent() {/*not used*/} function do_parent() { $classname = get_class($this); echo 'Classname: '.$classname.'<br/>'; // output c_child (ok) $d = new $classname; $d = $this; // Ja rakstam $d=clone($this), tad viss ir ok, bet clone() darbojas tikai PHP5 :( $d->attr=1; return $d; } } class c_child extends c_parent { var $attr; function c_child() {$this->attr=0;} function do_child() { echo 'before:'.$this->attr.'<br/>'; // output 0 (ok) echo 'Calling do_parent():<br/>'; $d = $this->do_parent(); echo 'after:'.$this->attr.','.$d->attr.'<br/>'; // output 1,1 (why not 0,1 ?) } } // Main Program $entity = new c_child(); echo 'Class attribute='.$entity->attr.'<br/>'; // output 0 (ok) echo 'Calling do_child():<br/>'; $entity->do_child(); echo 'Class attribute='.$entity->attr.'<br/>'; // output 1 (why?) ?> Problēma ir tur, ka clone() darbojas tikai PHP5, bet sākotnēji šāda veida klases izveidoju un ražošanā tās darbojas uz PHP4 vides. Pārejot uz PHP5 rodas problēmas a kodu mainīt nepavisam negribas. Vai ir kādi skaidrojumi, ieteikumi utt., kādēļ tā notiekas. Kāpēc PHP5 netaisa automātisku clone()? Vienvārdsakot interesē Jūsu pārdomas par tēmu...
  6. DarkSide

    Izvelnes

    ParentID glabā tās menuID, kas atrodas tieši "virs" tekošās menu entītes. Rezultātā sanāks, ka DB tabulai ir relācija pašai uz sevi ParentID->MenuID.
  7. Superīgs tekstiņš uz ko latviešu burtus pārbaudīt - būs jāiegaumē :)
  8. Hmm... Ir jau tās foršās JavaScript funkcijas setTimeout un setInterval ar kurām var pausi noorganizēt, BET cik webā palasīju, tad sanāk tā, ka tās pamatīgi noslogo klienta kompi, jo reāli JavaScript izpilde nepārtraucas. Tas ir gadījumos, kad piemēram nepieciešams, lai ik pa 5 sekundēm kautkas notiekas. Skat. piemēru: Pseidokods - mani interesē norealizēt šādu lietu ar java script: while(someCondition) { statement1; wait (someDelay); } JavaScript realizācija (laikam sanāk bezgalīgs cikls, kas ik pa 5 sekundēm izpilda statement1): setInterval('statement1',5000); Varbūt ir kādi ieteikumi kā labāk to norealizēt?
  9. DarkSide

    AJAX +/-

    Hmm... īstenībā viss ir pat vienkāršāk nekā sākumā likās :) Tik viena problēmiņa radās pašam veidojot ajax funkcijas - kā 'varētu noorganizēt tā, lai tos HTTP requestus glabātu kādā masīvā - tobiš, lai varu taisīt vairākus "vienlaicīgus" requestus un uz katru saņemt atbildi un JavaScript zinātu uz kuru requestu kura konkrētā servera atbilde attiecas... Nu tipa tāda kautkāda ideja... varbūt kāds var padalīties ar kādu koda gabaliņu - no piemēriem vieglāk mācīties (pat sliktiem piemēriem :)
  10. DarkSide

    AJAX +/-

    Nē, nu skaidrs ir viens - JavaScript pamati vismaz ir jāzin. :) Iečekoju xajax - izskatās jau labi. Galvenais bonuss, ka nav pašam JavaScript jākodē, bet visu to kodu, kas būs klienta galā var noģenerēt ar PHP no servera gala skripta. Tas ir labi, taču nedaudz zūd kontrole pār visu šo procesu... Vobšem sākšu kodēt pats savas JavaScript funkcijas, lai labāk visu to procesu izprastu un tad jau redzēs ko tālāk... :) Paldies Jums visiem - php.lv kā vienmēr rullē :) !
  11. DarkSide

    AJAX +/-

    Ok, paldies par linku - nočekošu.
  12. DarkSide

    AJAX +/-

    Da tur jau tā lieta, ka infa ir daudz, bet nesakārtota - katrs taisa to Ajaxi kā vēlas. Tieši tādēļ gribējās dabūt kādu tādu lielu labu grāmatu, ko izstudēt,lai pašam būtu pietiekoši labs priekšstats par to visu, lai pats varētu kādu labi Ajaxa freimworku uztaisīt...
  13. DarkSide

    AJAX +/-

    Ir radusies interese apgūt AJAX tehnoloģiju kā tādu. Cik meklēju internetā - informācijas ir daudz, bet tāda visaptveroša AJAX izklāsta (tipa tutorial vai dļa čaiņikov) neatradu. Tādēļ jautājums - vai kādam no Jums nav ieejama kāda e-grāmata par AJAX? Shī gada martā piemēram ir iznākusi "Ajax and PHP" - būtu interesanti. Meklēju pat dažādos hubos, bet šo vai līdzīgu e-grāmatu neatradu. Varbūt kāds var palīdzēt?
  14. DarkSide

    MySQL klase

    Nu īstenībā var jau tai klasē iebāzt vēl šādas tādas derīgas lietas, piemēram, atribūtu - masīvs, kas saglabā visus objekta dzīves laikā izpildītos SQL teikumus debugošanai... vēl šo to var iebāzt, bet vai vajag tas ir jautājums. Pats šādu klasi uzcepu vienam projektam un nu jau pusgadu sekmīgi to lietoju, taču brīžiem māc šaubas vai tam bija liela jēga šai gadījumā. Protams, ir situācijas, kur klases PHP ļoti atvieglo programmētāja dzīvi. Pat u PHP 4.x var OOP izmantot tikai tas ļoti sux, OOP uz PHP 4.x ir iekodēts sūdīgi un strādā lēni un aprij nenormālu atmiņas daudzumu. Uz PHP 5.x OOP ir itkā realizēts daudzreiz labāk (PHP 5.x es gan neizmantoju, jo visu ko vjaag var uz PHP 4.x arī uztaisīt :)
  15. Vai ir iespējams pāris vārdos uzrakstīt kas par firmu tā ir? Otra lieta - vai varētu minēt vismaz aptuveno darba samaksu (+/-100Ls), lai ir aptuvens priekšstats par ko tiek runāts?
  16. Laba ideja - pa brīvdienām pamēģināšu...
  17. Da zinu pietiekoshi labi KAS ir XML, bet jautājums bija domāts tā - ok, uztaisu XMLu, bet tālāk ko ar to darīt? Vai Excelis māk XML normāli ielasīt? Vai tai XMLā var iebāzt priekš Exceļa arī kautkādu cell formating (tipa merge cells, cell background color, font bold, italic, size utt)? Kāds būtu tas XMLa formāts priekš Exceļa? Tamlīdzīgas lietas mani interesē...
  18. Pastāsti varbūt par XML variantu kautko precīzāk...
  19. Kādēļ tas ir slikts stils? Manuprāt, labi un ienkārši viss. Vienīgais sliktums ir tad, ja tabulā ir 100 datu lauki, bet mums atlasīšanai interesē tikai kādi 2-3 no tiem. Tad gan vajadzētu SELECT lauks1,lauks2 FROM tabula, bet ja interesē praktiski visi datu lauki no tabulas, tad SELECT * FROM tabula ir labākais kas var būt - vienkārši un labi. Varbūt vari pastāstīt sīkāk, kas SELECT * ir slikts? Moška kautko nezinu...
  20. Izrakņāju šī foruma searchu un patiesi atradu principā tikai divus variantus (nelietojot visādus tur COM utt., kas nav platformneatkarīgi): 1) PEAR (negribētos lietot, jo nezinu vai klientam, kas pasūtīja šo fišku vispār uz servera ir PEAR). Gribētos kautko neatkarīgu (kādu klasi vai ko tamlidzīgu) pielikt savam softam klāt. 2) Izmantot content-type. Vispār ideja laba, bet jāpārbauda dzīvē, cik labi Excelis saprot tās HTML tabulas. Piemēram, tabulu formatēšana, šūnu merge utt...
  21. Sveiki! Vai kautkur neklejo riņķi kādas labas PHP klases ar kurām varētu ar PHP līdzekļiem veidot Excel failus (visādām atskaitēm no datubāzes utt...)? Baigi vajadzētu, lai pašam nav jāurbjās cauri visam Excel (XLS) failu formātam... Varbūt varat padalīties informācijā un pieredzē šādā situācijā. Imanc alias DarkSide
  22. Hmm... nestriideeshos - laikam jau bija gan ieksh php.ini kautkaads settings, kad SID tiek padots automaatiski liidz kaa GET. Vispaar jaapaskataas, nekad par to nebiju taa iipashi aizdomaajies :)
  23. Varu tikai pievienoties paareejiem. PHP ir riiks, kas izpildaas servera galaa. Liidz ar to sho var panaakt tikai kaadaa no sekojoshiem veidiem: 1) Lietot frames vai iframes vai vairaakus logus, ko vizuaali var noformeet kaa vienu. 2) Lietot JavaScript klienta galaa un style = display:none vai tamliidziigi. Respektiivi PHP sagatavo visu iespeejamo (pilnu) weblapu, no kuras redzama ir tikai dalja, un attieciigi sagatavo arii JavaScript, kas operee jau klienta daljaa un nodroshina to kas ir un kas nav redzams. Shis variants ir stipri leendarbiigaaks nekaa iepriesheejais. 3) Veel ir variants, ka nevis paarlaadee tikai dalju, bet paarlaadee visu weblapu, ko var uztaisiit sameeraa smuki ar include vai require atbilstoshaas vietaas... Arii leenaaks nekaa frames, bet visdroshaakais veids.
  24. DarkSide

    Sessijas

    Sessijas izmantoshana viennoziimiigi ir droshaaka par visaadiem kookijiem un visu citu drazu. Vai lietot vertibas kas saglabatas sessijaas vai tomeer sessijaa saglabaat kautkaadu id (vai username) un katru reizi taisiit kaadu selectu no datubaazes ir striidiigs jautaajums. Slikti ir sessijaas tureet daudz info (noslogo webserveri), bet slikti ir arii, ja tev lapai ir liels apmekleejums un biezha staigaashana pa lapaam, tad uz katru lapas refresh taisiit selectu no datubaazes. Pashlaik vienaa projektaa ko taisu es censhos iipashi daudz sessijaas netureet (tikai id un lietotaaja autorizaacijas liimeni), bet saak izskatiities, ka tomeer ir slikti katraa lapaa laadeet visu nepiecieshamo info no datubaazes, jo nereti shiis lapas ir liidziigas - piemeeram tie pashi dati tikai citaa griezumaa (primitiivaakais - citaa seciibaa sakaartoti).
×
×
  • Create New...