om de 4 weken iets includen in een webpagina

Status
Niet open voor verdere reacties.

Frenske123

Terugkerende gebruiker
Lid geworden
2 jul 2007
Berichten
1.267
Hoi,


Ik heb nou iets als

<?php

PHP:
  if (date("Y") == 2012 && date("m") == 01 && date("d") == 01)  { 
  include "bestand1.html";
}
 elseif(date("Y") == 2012 && date("m") == 01 && date("d") == 29)  { 
  include "bestand2.html"; 
}
enz..enz..

dus eigenlijk om de 4 weken een bestand invoegen vanaf een bepaalde datum, wordt op een jaar natuurlijk een hele rij.
Is dit simpeler te doen?

zag onderstaande om eventueel aan te passen


PHP:
<?php
date_default_timezone_set('Europe/Amsterdam');

//
$startDate = '2012-10-23'; // friday // jaar maand dag

for($i = 1; $i <= 26; $i++)
{
    $weekOffset = $i * 4;
    $nextDate = strtotime("{$startDate} +{$weekOffset} weeks");
     //echo date('Y-m-d l', $nextDate) . PHP_EOL;}
	 echo date('l  d-m-Y', $nextDate) . PHP_EOL;} //dag maand jaar dag (bv dinsdag)
	 
	 
?>
 
Het zal zo iets moeten worden:

PHP:
<?php

$week = date('W'); // verkrijg de week waarin we zitten

// als je wilt dat het nu de eerste week is moet je dit doen en dan de // weghalen
// $week = 1;

$number = 0;
$fourWeeks = 0;

//loop hierin wordt gekeken of $fourWeeks kleiner is dan de week waarin we zitten
while($fourWeeks < $week){
    $number++; //verhoog het nummer elke keer met 1
    $fourWeeks = $fourWeeks + 4; // verhoog de aantal weken elke keer met 4
}

//include het bestand
include('bestand'.$number.'.html');
?>
 
Laatst bewerkt:
Klaas peter bedankt voor je reactie

mis alleen de dag van de week (maandag/dinsdag enz..) of datum van de maand (getal 0-31)
 
Misschien ben ik niet helemaal duidelijk geweest;

in week 1 moet er op zaterdag bestand1.html ingevoegd worden
in week 5 moet er op zaterdag bestand2.html ingevoegd worden
in week 9 moet er op zaterdag bestand3.html ingevoegd worden

enz..

ik doe dit nou met het 1e stuk code in mijn 1e post, maar wordt een lange lijst, vroeg me of of het simpeler kon(indien mogelijk)
 
oke dan wordt het zoiets

PHP:
<?php
 
$dayYear = date('z', strtotime('2012-10-23')); // verkrijg de dag van het jaar van 0 tot 365
 
 
$number = 0;
$fourWeeks = 0;
 
//loop hierin wordt gekeken of $fourWeeks kleiner is dan de week waarin we zitten
while($fourWeeks < $dayYear){
    $number++; //verhoog het nummer elke keer met 1
    $fourWeeks = $fourWeeks + 28; // volgens mij moet dit 28 zijn omdat je steeds om de 4 weken wilt
}
 
//include het bestand
include('bestand'.$number.'.html');
?>
 
Hoe moet dat werken? Met die code kijk je iedere keer naar 23 oktober. Volgens mij kan het allemaal veel simpeler.
PHP:
$week = date('W'); //Geeft het weeknummer
$week = $week -1; //en gaat een stap naar beneden zodat week 5 een vier oplevert.

$day = date('w');//Geeft het dagnummer, 6 voor zaterdag
	
if(is_int($week/4)  && $day == 6) //Kijkt of het weeknummer deelbaar is door vier, wat slechts iedere vier weken waar is. Kijkt ook of het zaterdag is.
{
	$include = ($week/4)+1;
	include 'bestand'.$include.'.html'; //voegt in week 1 bestand1.html in, in week 5 bestand2.html, etc. etc.
}
 
Laatst bewerkt:
Bedankt ,,ben beiden wat aan het testen

@ Naarling moet de D geen N zijn?

D A textual representation of a day, three letters Mon through Sun

Ik probeer via oa echo $include; te testen maar krijg geen output op scherm
 
Er zat inderdaad een fout in, zou nu correct moeten zijn.

N of w maakt in dit geval niet uit, in beide gevallen is de waarde van zaterdag 6.
 
Laatst bewerkt:
Er zat inderdaad een fout in, zou nu correct moeten zijn.

N of W maakt in dit geval niet uit, in beide gevallen is de waarde van zaterdag 6.

geld ook voor w W :)

if((is_int($week/4) || $week == 0) && $day == 3

Krijg alleen een blanco scherm, misschien een begin dag mogelijk bv zaterdag 29 sept
 
29 september is wel de laatste zaterdag van de maand, maar past niet in jouw week 1, week 5, week 9, etc. rijtje, dus het script doet op die dag niets.

W en w zijn trouwens bepaald niet hetzelfde http://php.net/manual/en/function.date.php

EDIT: Dit gebeurt er bijvoorbeeld op 13 oktober, in week 41.
 
Laatst bewerkt:
Klopt van wW ,,ik zat bij weekdagen

hoe ziet jou code er nu uit (woensdag) krijg maar niks op scherm

tevens gemaakt bestand11.html
 
Wat verwacht je dan op het scherm te krijgen? Het is geen zaterdag en geen vierde week. De code ziet er bij mij uit zoals hij nu in m'n bericht staat. Bij de demo (http://codepad.viper-7.com/VTh33x) heb ik de datum ingesteld op zaterdag 13 oktober, van de include heb ik een echo gemaakt omdat er natuurlijk geen bestand om te includen is.

EDIT: Of bedoelde je dat vanaf de eerste zaterdag van het jaar bestand1 geïnclude moet worden, vanaf de tweede zaterdag van het jaar bestand 2 etc.? Dat is uit je berichte niet erg duidelijk.
 
Laatst bewerkt:
Wat verwacht je dan op het scherm te krijgen? Het is geen zaterdag en geen vierde week. De code ziet er bij mij uit zoals hij nu in m'n bericht staat. Bij de demo (http://codepad.viper-7.com/VTh33x) heb ik de datum ingesteld op zaterdag 13 oktober, van de include heb ik een echo gemaakt omdat er natuurlijk geen bestand om te includen is.

EDIT: Of bedoelde je dat vanaf de eerste zaterdag van het jaar bestand1 geïnclude moet worden, vanaf de tweede zaterdag van het jaar bestand 2 etc.? Dat is uit je berichte niet erg duidelijk.
@edit nee dit bedoelde ik niet bovenstaande is goed >>om de 4 weken dus


wat me niet helemaal duidelijk ik is dat er vandaag wel de bestand11.html wordt geprint (ik zie dat je nu echo ipv include hebt gebruikt, dit is me duidelijk)

wat moet er worden aangepast om het bv vandaag te laten werken (test)

kan ik een begin weeknummer ingeven? dus beginnen in week 2 (2013) dan week 6.10,14 enz
 
Laatst bewerkt:
wat me niet helemaal duidelijk ik is dat er vandaag wel de bestand11.html wordt geprint
Dat komt door het mktime() stukje, die doet het script denken dat het 13 oktober is, dat moet je voor je site natuurlijk niet gebruiken.
wat moet er worden aangepast om het bv vandaag te laten werken (test)

kan ik een begin weeknummer ingeven? dus beginnen in week 2 (2013) dan week 6.10,14 enz
Als je wilt dat hij in week 2 begint moet je $week = $week -1; vervangen door $week = $week -2;

EDIT: Bij $week -3; en $day == 3 gaat het script vandaag af.
 
Laatst bewerkt:
vandaag lukt mij niet , ng iets fout
PHP:
<?php
$week = date('W', mktime(0,0,0, 10, 13, 2012)); //Geeft het weeknummer
$week = $week -3; //en gaat een stap naar beneden zodat week 5 een vier oplevert.

$day = date('N', mktime(0,0,0, 10, 13, 2012));//Geeft het dagnummer, 6 voor zaterdag
     
if(is_int($week/4)  && $day == 3) //Kijkt of het weeknummer deelbaar is door vier, wat slechts iedere vier weken waar is. Kijkt ook of het zaterdag is.
{
    $include = ($week/4)+1;
    echo 'bestand'.$include.'.html'; //voegt in week 1 bestand1.html in, in week 5 bestand2.html, etc. etc.
}

?>
 
Dan wil ik het statement nog iets uitbrieden
PHP:
//Eerst hier kijken en zo ja uitvoeren (willekeurige datum)
if (date("Y") == 2012 && date("m") == 01 && date("d") == 01)  { 
  include "bestandA.html";
}
 elseif(date("Y") == 2012 && date("m") == 01 && date("d") == 29)  { 
  include "bestandB.html"; 
}

PHP:
//anders 

$week = date('W', mktime(0,0,0, 10, 13, 2012)); //Geeft het weeknummer
$week = $week -3; //en gaat een stap naar beneden zodat week 5 een vier oplevert.

$day = date('N', mktime(0,0,0, 10, 13, 2012));//Geeft het dagnummer, 6 voor zaterdag
     
if(is_int($week/4)  && $day == 3) //Kijkt of het weeknummer deelbaar is door vier, wat slechts iedere vier weken waar is. Kijkt ook of het zaterdag is.
{
    $include = ($week/4)+1;
    echo 'bestand'.$include.'.html'; //voegt in week 1 bestand1.html in, in week 5 bestand2.html, etc. etc.
}

//Optioneel

Hierboven niks van toepassing op datums dan hier bestandC.html invoegen


Moet enkele uurtjes stoppen ,,Thanks !
 
vandaag lukt mij niet , ng iets fout
PHP:
<?php
$week = date('W', mktime(0,0,0, 10, 13, 2012)); //Geeft het weeknummer
$week = $week -3; //en gaat een stap naar beneden zodat week 5 een vier oplevert.

$day = date('N', mktime(0,0,0, 10, 13, 2012));//Geeft het dagnummer, 6 voor zaterdag
     
if(is_int($week/4)  && $day == 3) //Kijkt of het weeknummer deelbaar is door vier, wat slechts iedere vier weken waar is. Kijkt ook of het zaterdag is.
{
    $include = ($week/4)+1;
    echo 'bestand'.$include.'.html'; //voegt in week 1 bestand1.html in, in week 5 bestand2.html, etc. etc.
}

?>
Je moet het mktime gedeelte natuurlijk wel weghalen, anders blijft hij denken dat het 13 oktober is.
 
Hoe moet dat werken? Met die code kijk je iedere keer naar 23 oktober. Volgens mij kan het allemaal veel simpeler.
PHP:
$week = date('W'); //Geeft het weeknummer
$week = $week -1; //en gaat een stap naar beneden zodat week 5 een vier oplevert.

$day = date('w');//Geeft het dagnummer, 6 voor zaterdag
	
if(is_int($week/4)  && $day == 6) //Kijkt of het weeknummer deelbaar is door vier, wat slechts iedere vier weken waar is. Kijkt ook of het zaterdag is.
{
	$include = ($week/4)+1;
	include 'bestand'.$include.'.html'; //voegt in week 1 bestand1.html in, in week 5 bestand2.html, etc. etc.
}

Nou als je van de vaste datum een variable maakt werkt die perfect :)

Korter wil niet altijd zeggen beter :)
 
Beiden bedankt zal het morgen eens uitwerken:) zo te zien werkt het in elk geval

@Nou als je van de vaste datum een variable maakt werkt die perfect ?


Ik heb nou dus:

include 'bestand'.$include.'.html';

maar bestand1.html , bestand5.html ed dit zegt niet veel over de inhoud

kan ik aan de bestanden ook een herkenbare naam geven als bv jan1.html piet5.html misschien dmv een soort joker tekens? het aantal letters zou met wat creativiteit wel op dezelfde lengte gehouden kunnen worden indien nodig
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan