EdgarsK Posted January 27, 2010 Report Share Posted January 27, 2010 Sveiki PHP.lv Šodien nolēmu uzcept kodu ar kura palīdzību iegūstam Eiropas Hitu radio topa sarakstu. rezultātā mēs saņemam masīvu $results kuru varam iemest foreach kur mums vajag parādīt šo listi :) position - dziesmas šobrīdējā pozīcija eiropas hitu topāabs changes - dziesmas izmaiņas nedēļas laikāabs changes_type - 1 = uz augšu, 0 = uz leju artist - grupa/dziedātājs title - dziesmas nosaukums vote - šobrīdējais reitings eiropas hitu top listē Array( [0] => stdClass Object ( [position] => 1 [changes] => 7 [changes_type] => 1 [artist] => keri hilson [title] => i like [vote] => 2 ) [1] => stdClass Object ( [position] => 2 [changes] => 1 [changes_type] => 0 [artist] => edward maya & vika jigulina [title] => stereo love [vote] => 0 ) [2] => stdClass Object ( [position] => 3 [changes] => 1 [changes_type] => 0 [artist] => owl city [title] => fireflies [vote] => 10 ) ...... Pats kods - http://paste.php.lv/...6c4e11?lang=php Kā jūs novērtētu šo veikumu? Darbs tika paveikts 15 minūtēs. Esmu nolēmis uzsākt veidot līdzīgus kodus un publicēt tos php.lv lai palīdzētu jaunajiem programmētājiem, varbūt arī vecajiem. Quote Link to comment Share on other sites More sharing options...
briedis Posted January 27, 2010 Report Share Posted January 27, 2010 Man noderēja kā curl paraugs (nav gadījies izmantot curli), kā alternatīva file_get_contents :) Quote Link to comment Share on other sites More sharing options...
EdgarsK Posted January 27, 2010 Author Report Share Posted January 27, 2010 Prieks ka tev noderēja CURL briedis. Visiem zināms ka fgc ir ļoti lēns, tapēc iesaku iemācīties curl. Quote Link to comment Share on other sites More sharing options...
briedis Posted January 27, 2010 Report Share Posted January 27, 2010 Prieks ka tev noderēja CURL briedis. Visiem zināms ka fgc ir ļoti lēns, tapēc iesaku iemācīties curl. Nu ja to arī darīšu, vienkārši nav bijusi tāda vajadzība :) Karoč, ir tāds ieraksts manā TODO listē ;) Quote Link to comment Share on other sites More sharing options...
2easy Posted January 27, 2010 Report Share Posted January 27, 2010 :D:D:D sākšu ar kritiku kods patiešām strādā, taču tā kā jebkuru kodu izpildu pie error_reporting(E_ALL); ini_set('display_errors', 1); tad pirmais, ko ieraudziju bija tūkstošiem šādu paziņojumu Notice: Undefined offset: 0 in E:\www\b.php on line 66 Notice: Undefined offset: 1 in E:\www\b.php on line 66 Notice: Undefined offset: 2 in E:\www\b.php on line 66 Notice: Undefined offset: 3 in E:\www\b.php on line 66 ... ... ... Notice: Undefined offset: 371 in E:\www\b.php on line 66 Notice: Undefined offset: 371 in E:\www\b.php on line 67 Notice: Undefined offset: 371 in E:\www\b.php on line 68 Notice: Undefined offset: 371 in E:\www\b.php on line 69 mani ieteikumi 1) veltīt vairāk par 15x minūtēm skriptam, ko tu publicē 2) limitē outputu. parādi kaut vai pirmos 10x ierakstus, nevis all (tā taču ir tikai demonstrācija, nevis datu dumps) 3) turpmākos šādus koda fragmentus ieliec funkcijā ar dažiem biežāk lietojamajiem argumentiem 4) atsevišķas funkcijas posto šajā topikā http://php.lv/f/topic/15423-noderigas-funkcijas/ tā jau savādāk šis ir ļoti labs piemērs. tikai nevajag tik ļoti steigties. nav jau programmēšanas olimpiāde, lai iekļautos kkādā laika limitā ;) Quote Link to comment Share on other sites More sharing options...
EdgarsK Posted January 27, 2010 Author Report Share Posted January 27, 2010 Heh :) paldies par kritiku. Steigties nekur nesteidzos, laika ziņā šis diezgan ātri sanāca 1) ideja 2) izstrādes process, funkciju izvēle 3) testēšana (bez error_reporting;)) 4) publicēšana Tiešām prieks ka nopazorēji mani :P parasti tak error_reportingus pats lieku - kam negadās. Quote Link to comment Share on other sites More sharing options...
eT` Posted January 27, 2010 Report Share Posted January 27, 2010 noderēs, ja domāšu likt embedētos radio webā :) cilvēkiem patiks, ja varēs kaut kur redzēt arī TOPU :) Paldies! Quote Link to comment Share on other sites More sharing options...
EdgarsK Posted January 27, 2010 Author Report Share Posted January 27, 2010 Lūdzu ;) Quote Link to comment Share on other sites More sharing options...
briedis Posted January 27, 2010 Report Share Posted January 27, 2010 (edited) Es gribētu ieteikt, moš pievienot kaut kādu kešošanas iespēju, lai advancētie ehr admini nesāk ievērot konkrētas ip adrese, kas veic nepārtrauktus pieprasījumus ;)) un arī performance uzlabotos... $result = array(); $path = "ehr_tops.txt"; $update_interval = 300; // 5 minūtes $stat = stat($path); $last_mod = (int)$stat[9]; $delta_time = time() - $last_mod; if($delta_time > $update_interval){ // vai pagājis expire laiks /* te notiek topa iegūšana un ierakstīšana masīvā $result */ file_put_contents(serialize($result),$path); }else{ $result = unserialize(file_get_contents($path)); } Edited January 27, 2010 by briedis Quote Link to comment Share on other sites More sharing options...
EdgarsK Posted January 27, 2010 Author Report Share Posted January 27, 2010 es par sito biju aizdomajies, tulit uzrakstisu update njemot vera visus ietiektumus :) Quote Link to comment Share on other sites More sharing options...
EdgarsK Posted January 27, 2010 Author Report Share Posted January 27, 2010 (edited) Jaunāka versija - :) http://paste.php.lv/c26b16e225630455831460c0e8b4a9bd?lang=php dati glabājas cache failā (php failā, jo tas paātrina processu ja cache failu var inklūdot un uzreiz bez liekām apstrādēm lietot kā stringu) kad tiek pārsniegts laika limits 1 cache failam, tas tiek pārdēvēts tā (izveides) datumā un tiek sapumpēts jaunais saraksts un noglabāts. tukšo kodu pārtaisiju par oop, jo būs vieglāk kko uzlabot, kā arī funkcijas!! Funkcijas! :) Kritika? :) Atsauksmes? Edited January 27, 2010 by EdgarsA Quote Link to comment Share on other sites More sharing options...
2easy Posted January 27, 2010 Report Share Posted January 27, 2010 ieslēdz taču beidzot error reportingu... :D Quote Link to comment Share on other sites More sharing options...
EdgarsK Posted January 27, 2010 Author Report Share Posted January 27, 2010 es tak iesledzu :/ man neka neradija :/ vaitad kko rada ? Quote Link to comment Share on other sites More sharing options...
briedis Posted January 27, 2010 Report Share Posted January 27, 2010 Ievēro naming conventions ;) Un moš iznest mainīgos, kā piemēram, failu kur glabājas cache fails(-i) kā privātos klases mainīgos... Quote Link to comment Share on other sites More sharing options...
2easy Posted January 27, 2010 Report Share Posted January 27, 2010 vai tavā gadījumā no base64_encode() ir arī kāds praktisks ieguvums, ja neņem vērā, ka cache datu izmērs palielinās par 50% un ka serverim ir jātērē papildus laiks, lai datus kodētu šurpu turpu? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.