Senin, 19 September 2011

Membuat Kaleder Dengan php

Kali ini kita akan mencoba membuat kalender hijriah berformat PNG dengan fungsi-fungsi yang telah ada di PHP. Untuk itu kita butuh beberapa persiapan dan perlengkapan yang akan diperlukan nanti.

PERLENGKAPAN:
1. Satu set computer lengkap dengan webserver-nya. Anda bisa gunakan XAMPP.
2. Satu file font untuk fontasinya, saya menggunakan Antropos Freefont (antrf.ttf).
3. Gambar/image dengan desain kalender dengan format PNG.

PERSIAPAN:
1. Beberapa cemilan penunda lapar.
2. Sebungkus rokok diganti saja dengan secangkir gahwa (hot coffe).
3. Pastikan bahwa Anda sudah mengenal dasar-dasar PHP.
Langsung aja gan…
Contoh background kalendernya:
Pertama-tama jalankan webservernya. Bagi yang belum ngerti jalanin webserver, silahkan cari tutorialnya di google.
Kemudian buat file index.php terlebih dahulu dan masukkan script dibawah ini…
<?php
// ===================================================
//
// THIS SOURCE CODE IS FREE FOR USE
// IN THE NAME OF ALLAH SUBHANAHU WA TA'ALA
//
// Author: Sepyan Purnama k(shinjikoo@gmail.com)

// ===================================================
// Konversi masehi ke hijriyah
$tanggal = getdate();
$wday = $tanggal[wday];
$hr = $tanggal[mday];
$bln = $tanggal[mon];
$thn = $tanggal[year];
 if (($thn > 1582) || (($thn == 1582) && ($bln > 10)) || (($thn == 1582) && ($bln == 10) && ($hr > 14))) {
 $zjd=(int)((1461 * ($thn + 4800 + (int)(($bln - 14) / 12))) / 4) + (int)((367 * ($bln - 2 - 12 * ((int)(($bln - 14) / 12)))) / 12) - (int)((3 *
(int)((($thn + 4900 + (int)(($bln - 14) / 12)) / 100))) / 4) + $hr - 32075;
 } else {
 $zjd = 367 * $thn - (int)((7 * ($thn + 5001 + (int)(($bln - 9) / 7))) / 4) + (int)((275 * $bln) / 9) + $hr + 1729777;
 }
$zl=$zjd-1948440+10632;
$zn=(int)(($zl-1)/10631);
$zl=$zl-10631*$zn+354;
$zj=((int)((10985-$zl)/5316))*((int)((50*$zl)/17719))+((int)($zl/5670))*((int)((43*$zl)/15238));
$zl=$zl-((int)((30-$zj)/15))*((int)((17719*$zj)/50))-((int)($zj/16))*((int)((15238*$zj)/43))+29;
$bln=(int)((24*$zl)/709);
$hari=$zl-(int)((709*$bln)/24);
$tahun=30*$zn+$zj-30;
if($bln==1){ $bulan = "Muharram";}
if($bln==2){ $bulan = "Safar";}
if($bln==3){ $bulan = "Rabiul Awal";}
if($bln==4){ $bulan = "Rabiul Akhir";}
if($bln==5){ $bulan = "Jamadil Awal";}
if($bln==6){ $bulan = "Jamadil Akhir";}
if($bln==7){ $bulan = "Rejab";}
if($bln==8){ $bulan = "Syaaban";}
if($bln==9){ $bulan = "Ramadhan";}
if($bln==10){ $bulan = "Syawal";}
if($bln==11){ $bulan = "Zulkaedah";}
if($bln==12){ $bulan = "Zulhijjah";}
if($wday==0) { $namahari = "A H A D"; }
if($wday==1) { $namahari = "I T S N A I N"; }
if($wday==2) { $namahari = "T S A L A T S A"; }
if($wday==3) { $namahari = "A R B I ' A N"; }
if($wday==4) { $namahari = "K H A M I S"; }
if($wday==5) { $namahari = "J U M U ' A H"; }
if($wday==6) { $namahari = "S A B T"; }
// Pembuatan output gambar berformat PNG
header("Content-Type: image/PNG");
$img = imagecreatefromPNG("bghijri.png");
$fontfile = "./antrf.TTF";
$putih = imagecolorallocate($img, 255, 255, 255);
imageTTFText($img, 10, 0, 5, 45, $putih, $fontfile, $namahari);
$hitam = imagecolorallocate($img, 0, 0, 0);
$batas = imageTTFbbox(40, 0, $fontfile, $hari);
$x = imageSX($img)/2 - ($batas[0] + $batas[2] + $batas[4] + $batas[6]) / 4;
imageTTFText($img, 40, 0, $x, 100, $hitam, $fontfile, $hari);
$batas = imageTTFbbox(10, 0, $fontfile, $bulan);
$x = imageSX($img)/2 - ($batas[0] + $batas[2] + $batas[4] + $batas[6]) / 4;
imageTTFText($img, 10, 0, $x, 118, $hitam, $fontfile, $bulan);
$tahun = $tahun . " H";
$batas = imageTTFbbox(10, 0, $fontfile, $tahun);
$x = imageSX($img)/2 - ($batas[0] + $batas[2] + $batas[4] + $batas[6]) / 4;
imageTTFText($img, 10, 0, $x, 133, $hitam, $fontfile, $tahun);
imagePNG($img);
imagedestroy($img);
?>
Code diatas akan menghasilkan gambar berformat PNG. Jika Anda ingin merubah formatnya, Anda bisa mengganti sebagian code diatas. Seperti contoh “Content-Type: image/PNG” diganti ke format GIF menjadi “Content-Type: image/GIF”, atau ke format JPG menjadi “Content-Type: image/JPEG”.
Dan pastikan file gambar untuk background dan fontasinya udah Anda siapkan dalam satu folder dengan file index.
Jalankan, kemudian lihat hasilnya…

Sumber:3tnic.wordpress.com

Related Post

1 komentar:

Gimana membuat script PHP dari Hijriah ke Masehi?
Jika 4 Muharram 463H, tangal, bulan dan tahun berapa di Masehi.

Terima kasih

Posting Komentar

Silahkan memberi kritik atau saran dengan menulis komentar dibawah ini