Get Screenshot with PHP
Kemarin abis download PHP Manual yang baru. Lalu aku isenk baca PHP Manual: Migrating from PHP 5.1.x to PHP 5.2.x. Ternyata cukup banyak juga perubahan. Dan beberapa ada yang tidak compatible dengan versi sebelum-nya.
Tapi dua function baru yang menurut saya sangat menarik. Yaitu imagegrabscreen() dan imagegrabwindow(). Kedua function ini ada mulai PHP versi 5.2.2.
Sekarang dengan, anda bisa mengambil screenshot user server. Caranya:
<?php $im = imagegrabscreen(); imagepng($im, "myscreenshot.png"); ?>
Sayangnya kedua function ini ada bekerja pada platform Windows. Semoga nantinya juga bisa bekerja di platform Unix/Linux, mengingat Unix/Linux banyak digunakan pada server.
—
Ralat, ternyata function ini bekerja di server-side. Jadi gambar yang diambil hanya gambar yang sedang dibuka di server.
Cara Menyembunyikan Tag Div
Misalnya anda mempunyai file HTML dengan isi:
<h2>Operating System</h2>
<div>
<ul>
<li>Microsoft Windows</li>
<li>Mac OS X</li>
<li>Ubuntu Linux</li>
<li>FreeBSD</li>
</ul>
</div>
Kira2 bentuk tag html diatas seperti dibawah ini:
Operating System
- Microsoft Windows
- Mac OS X
- Ubuntu Linux
- FreeBSD
Anda ingin bila tulisan Operating Sytem ditekan, akan menyembunyikan daftar
Operating System dibawahnya.
Caranya:
- Tambahkan attribute
onclickdi tag<h2>
yang memanggil function Javascripthide(). Jangan lupa tambahkan attributeidpadadiv.
Kira-kira isinya menjadi seperti ini:<h2 onclick="hide('my-list')">Operating System</h2> <div id="my-list"> <ul> <li>Microsoft Windows</li> <li>Mac OS X</li> <li>Ubuntu Linux</li> <li>FreeBSD</li> </ul> </div> - Buat Javascript-nya.
<script type="text/javascript"> function hide(id) { document.getElementById(id).style.display = 'none'; } </script>Sekarang kalau anda click tulisan Operating System, daftar dibawahnya akan hilang. Eiittss, ada tapi nya. Kalau di-click lagi
nggak muncul. Ubah code Javascript diatas menjadi seperti ini:<script type="text/javascript"> function hide(id) { if (is_hide == true) { document.getElementById(id).style.display = 'block'; is_hide = false; } else { document.getElementById(id).style.display = 'none'; is_hide = true; } } </script>
Contoh disini menggunakan attribute onclick. Anda bisa saja
membuatnya menggunakan link atau membuat tombol baru dengan <button>.
Dan tentu saja bukan cuma <div> yang bisa disembunyikan. Tag-tag lain juga bisa kok.
Semoga tulisan ini membantu para web developer’s newbie atau yang lupa cara
menyembunyikan suatu content dengan Javascript dan CSS.
OS Detection with PHP
Terkadang beberapa programmer PHP yang masih newbie, ingin mengetahui OS apa yang sedang digunakan user. Dari beberapa yang saya temui, ada yang menggunakan $_SERVER['HTTP_USER_AGENT'], lalu menggunakan str_pos, if-else/switch, dsb..
Sebenarnya function untuk urusan ini udah ada didalam core php (built-in function).
Berikut caranya yang lebih simple, hanya dua baris.
<?php $browser = get_browser(null, true); echo $browser['platform']; //output: WinXP ?>
Autoload function in PHP
Para programmer PHP mungkin agak lelah bila bermain dengan class.
Dengan membuat class pada file-file yang berbeda,
tentu memudahkan dalam peng-edit-an code-nya nanti.
Tapi, agak repot karena setiap akan menggunakan class lain, file tersebut harus
diikutsertakan dengan include atau require.
Ini contoh kasus kumpulan file class yang berada didalam folder Class.
<htdocs> ├ <Class> │ ├ database.php │ ├ menu.php │ └ validation.php │ └ index.php
Misalnya, mau pake class Database, Menu dan Validation dengan cara standard,
maka isi file index.php:
<?php
require_once('Class/database.php');
$db = new Database();
require_once('Class/menu.php');
$menu = new Menu();
require_once('Class/validation.php');
$valid = new Validation();
?>
Nah, itu dia repotnya harus manggil file-file yang dibutuhkan.
Ada tiga require_once disitu.
Bayangkan suatu website yang besar, nggak hanya membutuhkan tiga class.
Ini dia cara yang lebih mudah. Buat file loader.php dengan isi:
<?php
function __autoload($classname) {
require_once("Class/$classname" . ".php");
}
?>
Jadi struktur file-nya:
<htdocs> ├ <Class> │ ├ database.php │ ├ menu.php │ └ validation.php │ ├ index.php └ loader.php
Sekarang kalau mau manggil file class yang lain cukup ikut-sertakan file
loader.php. Berikut contoh isi file index.php.
<?php
require_once('loader.php');
$db = new Database();
$menu = new Menu();
$valid = new Validation();
?>
Untuk membuktikan coba isi file database.php dengan:
<?php
class Database {
function Database() {
echo "Aku class database yang dipanggil otomatis saat pembuatan object baru.";
}
}
?>
Buka file index.php melalui web server anda.
Output: Aku class database yang dipanggil otomatis saat pembuatan object baru.
Mungkin akan muncul error message. Tapi santai aja.. bukan karena triknya nggak jitu. Tapi
karena emang class Menu dan Validation belum dibuat.
NB:
- Nama function yang sama dengan nama class, akan dipanggil otomatis saat object dibuat.
- Untuk PHP5, bisa juga menggunakan
__construct().
Ngapain dibersihin? Ntar kotor lagi
Dulu kalau disuruh rapiin tempat tidur sama nyokap aku selalu bilang gini: “Ngapain dirapiin, ntar kan Mulia tidur berantakan lagi.”
Suatu hari pas di Jakarta, aku diajak pergi bareng keluarga tante. Jadi aku disuruh mandi. Karena malas mandi, jadi aku bilang: “Ngapain mandi? Ntar juga kotor lagi.”
Biasanya kalo aku ngomong gitu, biasanya orang ngejawab: “Terserah kamulah..” atau “Yaudah..”
Tapi waktu itu tante-ku langsung bilang: “Jadi kalo abis berak nggak cebok? Ntar kan kotor lagi.”
Lalu pas pulang ke Jogja, aku ceritain ma temenku Aang. Trus sambil ketawa, kira-kira dia bilang gini: “Bener juga sih.. Jadi ngapain kamu hidup Mul? Ntar mati juga kan?”
Itu emang bener-bener kalimat yang menyakitkan. Kalo di anime itu kayak ada anak panah tiba-tiba nancap di jantung. “Aagghh.. sakitt..”
Semenjak itu emang nggak pernah berani aku bilang gitu lagi..
Punya pengalaman serupa?? Bagi-bagi donk..