30. juli 2010 - 00:32Der er
23 kommentarer og 2 løsninger
Ny forside hver dag
Det er ikke sikkert, at den den løsning, jeg nu vil beskrive, skal laves med php.
Hvordan vil et script se ud, der gør følgende?:
Et website får en ny forside hver dag.
Hver nat klokken 00:00 skifter et websites forside. Forsiden fra det forrige døgn skiftes ud med en tilfældig side fra en liste (side1.php, side 2.php, side 3.php). Fra klokken 00:00 til klokken igen bliver 00:00 er forsiden enten side1.php, side2.php eller side3.php.
Mit eneste bud er noget med redirection, da jeg regner med, at man bliver nødt til at have en fast index.php-fil.
For god ordens skyld er det nok smartest altid at have index.whatever som startside - men du kan bruge include til at hente fra en anden, og således kan du undgå at lave redirects eller selv at skrive et system til at generere siden ud fra det skiftende indhold.
Eks. - i index.php:
// lad pages være et associativt array med formen dag => url $pages = array( "33201" => "pages/page1.php", "33202" => "pages/page2.php", "33203" => "pages/page3.php" ); $dag = time() % 86400; // 86400 sekunder per døgn require_once($pages[$dag]); // pages/pageN.php
Jeg ville ikke benytte mig at et cronjob til den slags. Og ville som #1 siger bruge en include.
Dog er det med tiden ikke korrekt da det er pr. sekund der kommer ny forside.
Ville i stedet bruge en date("dmy"); som vil blive til 300710 som er dato for i dag 30-07-10 $pages = array( "300710" => "pages/page1.php", "300711" => "pages/page2.php", "300712" => "pages/page3.php" ); Så kan man jo altid lave noget smart med noget database så du slev kan redigere hvilke filer på hvilke dage...
Synes godt om
Slettet bruger
30. juli 2010 - 13:17#4
#3 Burde følgende ikke sikre, at den skrifter for hvert døgn og ikke sekund - eller har jeg overset noget? $dag = time() % 86400; // 86400 sekunder per døgn
// "day" => "url" // day: Dage fra 1. januar 1970 (Unix Epoch) til den relevante dag // url: Relativ eller absolut URL til siden for den relevante dag // Dag 14820 angiver 30. juli 2010
$pages = array( "14820" => "pages/foo.txt", // 30. juli 2010 "14821" => "pages/bar.txt", // 31. juli 2010 "14822" => "pages/baz.txt" // 1. august 2010 // ... );
?>
Til dette eksempel anvendes siderne foo.txt, bar.txt og baz.txt i undermappen pages.
Synes godt om
Slettet bruger
30. juli 2010 - 14:28#8
Forresten: "Dog er det med tiden ikke korrekt da det er pr. sekund der kommer ny forside." - fra #3 Du har helt ret; rettet.
Jeg mener bare, om jeg i resten af websitets historie skal skrive et højere og højere tal, eller om der er en form for gentagelse?
Synes godt om
Slettet bruger
30. juli 2010 - 16:40#11
Tallet stiger uendeligt, så 14823 er den 14822. dag fra Epoch, og 8394756873945689734675 er den 8394756873945689734675. dag fra Epoch :)
Synes godt om
Slettet bruger
30. juli 2010 - 16:41#12
Rettelse: Tallet stiger uendeligt, så 14823 er den 14823. dag fra Epoch, og 8394756873945689734675 er den 8394756873945689734675. dag fra Epoch :) Desuden får PHP nok svært ved at håndtere så store tal, men det når næppe at blive relevant!
Når jeg går direkte ind på pages.php, virker det heller ikke. Problemet er altså sandsynligvis ikke index-filen.
Jeg har lavet det præcist, som du har beskrevet.
Synes godt om
Slettet bruger
30. juli 2010 - 21:58#15
Det er spøjst, for det virker her. At loade pages.php bør ikke virke, da den i sig selv intet foretager sig foruden at oprette et array med siderne (den loader ikke indholdet fra den passende).
Kan du skrive dit filhierarki her, så jeg kan se det?
NUMMER 2) pages.php ligger i mappen "kogebog" sammen med index.php og ser sådan ud:
<?php
// "day" => "url" // day: Dage fra 1. januar 1970 (Unix Epoch) til den relevante dag // url: Relativ eller absolut URL til siden for den relevante dag // Dag 14820 angiver 30. juli 2010
Du kan få 100 point for din aktive deltagelse, hvis du tilføjer et indlæg som et svar.
Synes godt om
Slettet bruger
31. juli 2010 - 10:13#25
Fint, men du kan da også bare vente og se, om nogen andre kan svare på det.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.