Jump to content
php.lv forumi

Recommended Posts

Posted

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.

Posted

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ē ;)

Posted

: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ā ;)

Posted

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.

Posted (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 by briedis
Posted (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 by EdgarsA
Posted

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?

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...