Jump to content

Countdown PHP image


Flitskikker

Recommended Posts

Ik wil een countdown teller maken, die automatisch veranderd. Zoals deze:

trailer1.png

Summerbase heeft met al een beetje opweg geholpen en gezegd dat het geen plaatje is, maar een php-bestand dat omgezet wordt naar een plaatje.

Dus ik heb een php countdown script nodig, en die heb ik even gemaakt: Klik

<?
$dag = 29; // Dit is de dag van de datum waarnaar je wilt aftellen
$maand = 3; // Dit is de maand van de datum waarnaar je wilt aftellen
$jaar = 2007; // Dit is het jaar van de datum waarnaar je wilt aftellen

// We gebruiken de functie mktime.
// De vreemde volgorde van datum heeft te maken met
// de Amerikaanse tijdsrekening(maand-dag-jaar)
$tijd = mktime(0,0,0,$maand,$dag,$jaar);

// $tijd is de tijd van hierboven en de functie time
// geeft de huidige tijd weer.
$verschilintijd = $tijd - time();

// er zitten 86400 seconden in 1 dag, daarom delen we door 86400
$dagentegaan = ($verschilintijd - ($verschilintijd % 86400)) / 86400;
$verschilintijd = $verschilintijd - ($dagentegaan * 86400);
$urentegaan = ($verschilintijd - ($verschilintijd % 3600)) / 3600;
$verschilintijd = $verschilintijd - ($urentegaan * 3600);
$minutentegaan = ($verschilintijd - ($verschilintijd % 60)) / 60;
$verschilintijd = $verschilintijd - ($minutentegaan * 60);
$secondentegaan = ($verschilintijd - ($verschilintijd % 1)) / 1;

// Nu printen we de tekst nog eens mooi op het scherm.
// Als je wil, kan je hier nog tekstopmaak aan toevoegen.
printf("Flitskikker wacht nog $dagentegaan dag(en), $urentegaan (u)ur(en) en  

$minutentegaan minu(u)t(en) op de GTA IV trailer.");
?>

Ook zei Summerbase dat je dit in een .htaccess bestand moet zetten, om de files om te zetten naar een png file:

<Files *.png>
ForceType application/x-httpd-php
</Files>

Ik heb dat gedaan en in dezelfde map gezet, maar het werkt nog niet.

Moet ik soms nog het countdown script "koppellen" aan het .htaccess bestand?

Ook moest ik zoek naar een GD Library???

Misschien dat andere mensen hier ook wat weten, of een link naar een tutorial weten.

Alvast bedankt voor jullie hulp!

Mvg,

Flitskikker

Bewerkt: door Flitskikker
Link to comment
Delen op andere websites

Je kan deze tutorial gebruiken: klik hier

Volgens mij staat daar alles super duidelijk vermeld, als je nog vragen hebt dan vraag je het maar maar denk niet dat je dat nog hebt nadat je die tutorial gelezen hebt. :Y

Bij mijn code, krijg ik een error:

Parse error: parse error, unexpected T_STRING in \\192.168.1.16\webfiles\files\2006-2\630384\gtaforum\ivcntdwn\php\countdown.php on line 38

Mijn code:

<? 

header("content-type: image/png");
$image = ImageCreate(500, 20); //Plaatje aanmaken met X=500 en Y=20

$dag = 29; // Dit is de dag van de datum waarnaar je wilt aftellen
$maand = 3; // Dit is de maand van de datum waarnaar je wilt aftellen
$jaar = 2007; // Dit is het jaar van de datum waarnaar je wilt aftellen

// We gebruiken de functie mktime.
// De vreemde volgorde van datum heeft te maken met
// de Amerikaanse tijdsrekening(uur,minuten,seconden,maand-dag-jaar)
$tijd = mktime(17,0,0,$maand,$dag,$jaar); 

// $tijd is de tijd van hierboven en de functie time
// geeft de huidige tijd weer.
$verschilintijd = $tijd - time(); 

// er zitten 86400 seconden in 1 dag, daarom delen we door 86400
$dagentegaan = ($verschilintijd - ($verschilintijd % 86400)) / 86400; 
$verschilintijd = $verschilintijd - ($dagentegaan * 86400); 
$urentegaan = ($verschilintijd - ($verschilintijd % 3600)) / 3600; 
$verschilintijd = $verschilintijd - ($urentegaan * 3600); 
$minutentegaan = ($verschilintijd - ($verschilintijd % 60)) / 60; 
$verschilintijd = $verschilintijd - ($minutentegaan * 60); 
$secondentegaan = ($verschilintijd - ($verschilintijd % 1)) / 1; 

// Nu printen we de tekst nog eens mooi op het scherm.
// Als je wil, kan je hier nog tekstopmaak aan toevoegen.


//We maken een achtergrondkleur
$achtergrond = ImageColorAllocate($image, 241, 241, 241); //255, 255, 255 = Wit

//De grootte van ons lettertype
$grootte = 2;
//Tekst die we op ons plaatje willen.
$tekst = Flitskikker wacht nog $dagentegaan dag(en), $urentegaan (u)ur(en) en  $minutentegaan minu(u)t(en) op de GTA IV trailer.;
//Tekstkleur
$kleur = ImageColorAllocate($image, 255, 0, 0);
//Het font selecteren, VERGEET DEZE NIET TE UPLOADEN !
$font = 'sydnier.ttf';
//De functie word onder het voorbeeld uitgelegd!
ImageTTFText($image, $grootte, 0, 20, 25, $kleur, $font, $tekst);
//Het plaatje aanmaken.
ImagePng($image);
//Het plaatje verwijderen uit het geheugen
ImageDestroy($image); 


?>

Link to comment
Delen op andere websites

Je was vergeten de waarde van de variabelen $tekst binnen quotes te zetten :D

Vervang:

//Tekst die we op ons plaatje willen.
$tekst = Flitskikker wacht nog $dagentegaan dag(en), $urentegaan (u)ur(en) en  $minutentegaan minu(u)t(en) op de GTA IV trailer.;

Door:

//Tekst die we op ons plaatje willen.
$tekst = "Flitskikker wacht nog $dagentegaan dag(en), $urentegaan (u)ur(en) en  $minutentegaan minu(u)t(en) op de GTA IV trailer.";

:cya:

Link to comment
Delen op andere websites

Oke, dat heb ik bewerkt, maar nu krijg ik dit:

De afbeelding “http://h1.ripway.com/flitskikker/gtaforum/ivcntdwn/php/countdown.php” kan niet worden weergegeven, omdat hij fouten bevat.

De code nu:

<? 

header("content-type: image/png");
$image = ImageCreate(500, 20);

$dag = 29; // Dit is de dag van de datum waarnaar je wilt aftellen
$maand = 3; // Dit is de maand van de datum waarnaar je wilt aftellen
$jaar = 2007; // Dit is het jaar van de datum waarnaar je wilt aftellen

// We gebruiken de functie mktime.
// De vreemde volgorde van datum heeft te maken met
// de Amerikaanse tijdsrekening(uur,minuten,seconden,maand-dag-jaar)
$tijd = mktime(17,0,0,$maand,$dag,$jaar); 

// $tijd is de tijd van hierboven en de functie time
// geeft de huidige tijd weer.
$verschilintijd = $tijd - time(); 

// er zitten 86400 seconden in 1 dag, daarom delen we door 86400
$dagentegaan = ($verschilintijd - ($verschilintijd % 86400)) / 86400; 
$verschilintijd = $verschilintijd - ($dagentegaan * 86400); 
$urentegaan = ($verschilintijd - ($verschilintijd % 3600)) / 3600; 
$verschilintijd = $verschilintijd - ($urentegaan * 3600); 
$minutentegaan = ($verschilintijd - ($verschilintijd % 60)) / 60; 
$verschilintijd = $verschilintijd - ($minutentegaan * 60); 
$secondentegaan = ($verschilintijd - ($verschilintijd % 1)) / 1; 

// Nu printen we de tekst nog eens mooi op het scherm.
// Als je wil, kan je hier nog tekstopmaak aan toevoegen.


//We maken een achtergrondkleur
$achtergrond = ImageColorAllocate($image, 241, 241, 241);

//De grootte van ons lettertype
$grootte = 2;

//Tekst die we op ons plaatje willen.
$tekst = "Flitskikker wacht nog $dagentegaan dag(en), $urentegaan (u)ur(en) en  $minutentegaan minu(u)t(en) op de GTA IV trailer.";

//Tekstkleur
$kleur = ImageColorAllocate($image, 255, 0, 0);

//Het font selecteren, VERGEET DEZE NIET TE UPLOADEN !
$font = 'http://h1.ripway.com/flitskikker/gtaforum/ivcntdwn/php/fonts/SYDNIER.ttf';

//De functie word onder het voorbeeld uitgelegd!
ImageTTFText($image, $grootte, 0, 10, 10, $kleur, $font, $tekst);

//Het plaatje aanmaken.
ImagePng($image);

//Het plaatje verwijderen uit het geheugen
ImageDestroy($image); 


?>

Bewerkt: door Flitskikker
Link to comment
Delen op andere websites

Hmm, ik zie de fout niet echt :duh: Maar $achtergrond wordt aangemaakt en verder niet gebruikt (zoals het in de tutorial staat :engel: Probeer is gewoon door:

$achtergrond = ImageColorAllocate($image, 255, 255, 255);

te veranderen naar

ImageColorAllocate($image, 255, 255, 255);

Bewerkt: door Argon
Link to comment
Delen op andere websites

Nope, hij werkt nog steeds niet :N .

Misschien werkt hij bij jullie wel.

KLIK

De code nu:

<? 

header("content-type: image/png");
$image = ImageCreate(500, 20);

$dag = 29; // Dit is de dag van de datum waarnaar je wilt aftellen
$maand = 3; // Dit is de maand van de datum waarnaar je wilt aftellen
$jaar = 2007; // Dit is het jaar van de datum waarnaar je wilt aftellen

// We gebruiken de functie mktime.
// De vreemde volgorde van datum heeft te maken met
// de Amerikaanse tijdsrekening(uur,minuten,seconden,maand-dag-jaar)
$tijd = mktime(17,0,0,$maand,$dag,$jaar); 

// $tijd is de tijd van hierboven en de functie time
// geeft de huidige tijd weer.
$verschilintijd = $tijd - time(); 

// er zitten 86400 seconden in 1 dag, daarom delen we door 86400
$dagentegaan = ($verschilintijd - ($verschilintijd % 86400)) / 86400; 
$verschilintijd = $verschilintijd - ($dagentegaan * 86400); 
$urentegaan = ($verschilintijd - ($verschilintijd % 3600)) / 3600; 
$verschilintijd = $verschilintijd - ($urentegaan * 3600); 
$minutentegaan = ($verschilintijd - ($verschilintijd % 60)) / 60; 
$verschilintijd = $verschilintijd - ($minutentegaan * 60); 
$secondentegaan = ($verschilintijd - ($verschilintijd % 1)) / 1; 

// Nu printen we de tekst nog eens mooi op het scherm.
// Als je wil, kan je hier nog tekstopmaak aan toevoegen.


//We maken een achtergrondkleur
ImageColorAllocate($image, 241, 241, 241);

//De grootte van ons lettertype
$grootte = 2;

//Tekst die we op ons plaatje willen.
$tekst = "Flitskikker wacht nog $dagentegaan dag(en), $urentegaan (u)ur(en) en  $minutentegaan minu(u)t(en) op de GTA IV trailer.";

//Tekstkleur
$kleur = ImageColorAllocate($image, 255, 0, 0);

//Het font selecteren, VERGEET DEZE NIET TE UPLOADEN !
$font = "http://h1.ripway.com/flitskikker/gtaforum/ivcntdwn/php/fonts/SYDNIER.ttf";

//De functie word onder het voorbeeld uitgelegd!
ImageTTFText($image, $grootte, 0, 10, 10, $kleur, $font, $tekst);

//Het plaatje aanmaken.
ImagePng($image);

//Het plaatje verwijderen uit het geheugen
ImageDestroy($image); 


?>

Mvg,

Flitskikker

Link to comment
Delen op andere websites

Ik denk dat ik het misschien weet, dat is toch mijn laatste poging in iedergeval :$

//Het font selecteren, VERGEET DEZE NIET TE UPLOADEN !
$font = "http://h1.ripway.com/flitskikker/gtaforum/ivcntdwn/php/fonts/SYDNIER.ttf";

//De functie word onder het voorbeeld uitgelegd!
ImageTTFText($image, $grootte, 0, 10, 10, $kleur, $font, $tekst);

Verander dat in

//Het font selecteren, VERGEET DEZE NIET TE UPLOADEN !
$font = "fonts/SYDNIER.ttf";

//De functie word onder het voorbeeld uitgelegd!
ImageTTFText($image, $grootte, 0, 10, 10, $kleur, $font, $tekst) or die ('Afbeelding tekst fout');

Link to comment
Delen op andere websites

Nee, het werkt nog niet. Misschien dat SummerBase of iemand anders nog wat weet.

----------

Hey, ik heb hem werkend gekregen:

KLIK

Maar kan ik de extensie ook nog laten eindigen op png? Want ik kan hem nu niet tussen IMG tags zetten.

Mvg,

Flitskikker

EDIT: Sorry voor de dubbelpost, ik zie het nu pas... :$

>>> Door Preddy: Samengevoegd hoor, volgende keer even beter opletten :)<<<

Bewerkt: door Preddy
Link to comment
Delen op andere websites

Door dit in je htaccess bestand te zetten kan je countdown.php ook als countdown.png bekijken.

RewriteEngine On
RewriteRule ^countdown.png countdown.php [L]

Hopelijk werkt het nu helemaal perfect voor je :) En zou je zo vriendelijk willen zijn te zeggen wat er juist fout was want ben ik wel een beetje benieuwd naar eigenlijk :)

Link to comment
Delen op andere websites

Dit is de originele link:

KLIK

Maar als ik countdown.png intyp, dan krijg ik dit:

Klik

Ligt dat aan mijn host?

@Argon: Eerst had ik het scriptje genomen met een eigen font, nu heb ik het scriptje met het standaard php font.

Mvg,

Flitskikker

Link to comment
Delen op andere websites

  • 3 weken later...

Hey Flitskikker, ik heb een vraagje.

Als je nou zo'n code hebt gemaakt, waar vul je die dan in? Welk programma heb je daarvoor nodig?

Alvast bedankt :)

EDIT: Andere mensen die het ook weten mogen ook antwoorden hoor ;)

Bewerkt: door Tunix
Link to comment
Delen op andere websites

Gewoon in kladblok of welke andere tekstverwerken dan ook. :) Zorg er dan wel voor dat je het opslaat als een .php bestand. Nadat je dat gedaan hebt, moet je het uploaden naar je host. Die doe je met FTP. Een goede gratis host is http://gimyweb.de . Helaas wel in het Duits :( Voor tutorials over het schrijven van zulke codes, ga je naar http://sitemasters.be . Succes! :tu:

Bewerkt: door -Roy-
Link to comment
Delen op andere websites

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

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

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.
×
×
  • Create New...