Sesuai dengan judulnya, berikut dibawah ini merupakan gambaran kasar dari fungsi powerfull yang dimiliki oleh PHP
1.Membuat Fungsi dengan jumlah Arment yang tidak Menentu. PHP memiliki kemampuan untuk membuat fungsi dengan argument optional. Biasanya, programmer akan menuliskan sebagai berikut:
function multiple($arg1 = ’’, $arg2 = ’’)
{ echo $arg1 . ’ ’ . $arg2;
}
multiple(’BAGI’, ’Sahabat’, ’11’);
// mencetak:
// BAGI Sahabat
Kelemahannya adalah fungsi tersebut tidak dapat menangkap argument sejumlah ebih dari yang dideklarasikan. Namun Anda bisa mengatasinya dengan fungsi func_ge_args() seperti di bawah ini:
function multiple() {
$args = func_get_args();
foreach($args as $arg) {
echo $arg . ’ ’;
}
}
multiple(’BAGI’, ’Sahabat’, ’11’);
// mencetak:
// BAGI Sahabat 11
2.Mencari File dengan lebih mudah. Biasanya, untuk mencari file dalam folder, fungsi yang digunakan adalah scandir(). Untuk mencari file dengan pola nama tertentu, harus dilakukan perulangan untuk mengecek setiap fil eyan gditemukan. Dengan fungsi glob(), hal ini dapat dilakukan dengan lebih singkat. Pla yang ingin dicari dimasukkan sebagai argument pertama funsi ini. Pola dapat berupa relative path dari lokasi folder.
$files = glob(’*.php’);
print_r($files);
/*
* Mencetak array:
* Array
* (
* [0] => index.php
* [1] => file.php
* [2] => database.php
* )
*/
$files = glob(’../images/h*.png’);
print_r($files);
/*
* Mencetak array:
* Array
* (
* [0] => ../images/hello.png
* [1] => ../images/humble.png
* )
*/
3.Serialization. Terkadang program perlu menyimpan variable kompleks ke dalam file atau database. Menyimpan variable kompleks ke dalam file atau database. Pembuatan fungsi untuk mengubahnya dari array atau object ke teks dengan format tertentu dan sebaliknya akan cukup merepotkan. Anda tidak perlu melakukannya karena PHP telah menyediakan fungsi tersebut. Dua fungsi yang dapat Anda gunakan adlaah serialize() dan unserialize().
// variable kompleks
$myvar = array(
’drink’ => ’beer’,
27,
array(11, 1988),
’salad’
$string = serialize($myvar);
echo $string;
// mencetak:
// a:4:{s:5:"drink";s:4:"beer";i:0;i:27;i:1;a:2:{i:0;i:11;i:1;i:1988;}i:2;s:5:"salad";}
echo ’<br />’;
$newvar = unserialize($string);
print_r($newvar);
/*
* mencetak:
* Array
* (
* [drink] => beer
* [0] => 27
* [1] => Array
* (
* [0] => 11
* [1] => 1988
* )
* [2] => salad
* )
*/
Mulai PHP 5.2 juga telah tersedia konversi format data JSON yang popularitasnya sedang meningkat. Anda bisa menggunakan fungsi json_encode() dan json_decode()untuk hal yang sama.
// array kompleks
$myvar = array(
’hello’,
42,
array(1,’two’),
’apple’
// mengubah ke string
$string = json_encode($myvar);
echo $string;
/* prints
["hello",42,[1,"two"],"apple"]
*/
// mengembalikan variable
$newvar = json_decode($string);
print_r($newvar);
/* prints
Array
[0] => hello
[1] => 42
[2] => Array
[0] => 1
[1] => two
[3] => apple
*/
4.Mengkompres Teks. Kompresi sering dikaitkan dengan file ZIP. Dalam PHP, Anda bisa mengkompre teks yang panjang menjadi lebih pendek dengna fungsi gzcompress() dan mengembalikannya dengan fungsi gzuncompress().
$string =
"Lorem ipsum dolor sit amet, consectetur
adipiscing elit. Nunc ut elit id mi ultricies
adipiscing. Nulla facilisi. Praesent pulvinar,
sapien vel feugiat vestibulum, nulla dui pretium orci,
non ultricies elit lacus quis ante. Lorem ipsum dolor
sit amet, consectetur adipiscing elit. Aliquam
pretium ullamcorper urna quis iaculis. Etiam ac massa
sed turpis tempor luctus. Curabitur sed nibh eu elit
mollis congue. Praesent ipsum diam, consectetur vitae
ornare a, aliquam a nunc. In id magna pellentesque
tellus posuere adipiscing. Sed non mi metus, at lacinia
augue. Sed magna nisi, ornare in mollis in, mollis
sed nunc. Etiam at justo in leo congue mollis.
Nullam in neque eget metus hendrerit scelerisque
eu non enim. Ut malesuada lacus eu nulla bibendum
id euismod urna sodales. ";
$compressed = gzcompress($string);
echo "Original size: ". strlen($string)."’n";
/* cetak
Original size: 800
*/
echo "Compressed size: ". strlen($compressed)."’n";
/* cetak
Compressed size: 418
*/
// mengembalikan kompresi
$original = gzuncompress($compressed);
5.Memanggil Fungsi yang Dijalankan Terakhir. Fungsi register_shutdown-function() dapat mendaftarkan funsi yang akan dipanggil sesaat sebelum program selesai berjalan. Fungsi ini bisa Anda gunakan untuk berbagai hal, antara lain untuk membuat benchmark total waktu eksekusi program Anda dari awal hingga akhir.Jika Anda belum mengetahui fungsi ini, kemungkinan Anda akan meletakkan kode perhitungan waktu eksekusi di bagian paling bawah program seperti berikut ini.
// waktu awal
$start_time = microtime(true);
// proses lain
// ...
// waktu akhir
echo "execution took: ".
(microtime(true) - $start_time).
" seconds.";
Namun, cara ini memiliki kelemahan. Bila dalam suatu kode Anda memanggil fungsi exit() terjadi Fatal error ataupun user menghentikan eksekusi kode, baris tersebut tidak akan pernah terpanggil. Sementara, bila Anda mendaftarkannya dalam register_shutdown_fuction(),fungsi tersebut akan dijalankan apa pun yang terjadi.$start_time = microtime(true);
register_shutdown_function(’my_shutdown’);
// proses lain
// ...
function my_shutdown() {
global $start_time;
echo "execution took: ".
(microtime(true) - $start_time).
" seconds.";
}
6.Membuat ID Unik. Salah satu permasalahan dalam dunia data adalah pembautan ID unik. Biasanya, fungsi yan gdigunakan adalah kombinasi md5() terhadap waktu saat kode dijalankan.echo md5(time() . mt_rand(1,1000000));
PHP telah menyedeiakan fungsi uniqid() untuk membuat string unik. Hasil yang dikelauarkan relative terhadap waktu server sehingga pembautan ID dalam waktu berdekatan akan semakin mirip. Anda bisa menambahkan prefix maupun memperbesar entropinya melalui argument.
// standar
echo uniqid();
// dengan prefix
echo uniqid(’hq_’);
/* prints
hq_4bd67d6cd8b8f
*/
// dengan entropy
echo uniqid(’’,true);
/* prints
4bd67d6cd8b926.12135106
*/
// prefix dan entropy
echo uniqid(’hq_’,true);
/* prints
hq_4bd67da367b650.43684647
*/
- - - - - - - - - - - - - - -- - - - - - -
Md5(). Fungsi yang memetakan suatu nilai ke suatu nilai acak lainnya melalui teknik hashing. Karena bersifat tidak dapat dibalikkan, md5() sering dipakai untuk mengenkripsi password.
JSON. Singkatan dari JavaScript Object Notation, yaitu format pertukaran data yang ringan berbasiskan teks. Data disimpan dalam associative array ayng dapat dibaca dengan mudah oleh manusia.
Relative path. Sebuah path yang bersifat relatif akan dimulai dari lokasi file di mana terdpat baris yang memanggilnya. Bila file tesebut dipindahkan ke folder lain atau bila kode tersebut dipanggil dalam file lain, kemungkinan besar kode tersebut tidak akan bekerja dengan benar.