Membahas Function urlencode() di PHP

Tags


Jika sobat sudah familiar dengan PHP, maka sudahkah Anda mengetahui adanya function urlencode()? Jika belum pernah mengetahui, maka saya akan jelaskan manfaat function tersebut. Function urlencode() digunakan untuk mengkonvert karakter atau string ke dalam bentuk format karakter URL yang valid. Masih belum ada gambaran? OK saya akan saya berikan gambaran lebih lanjut tentang masalah ini.

Perhatikan contoh script berikut ini

hal1.php
<?php
   echo "<a href='hal2.php?param=hello world!@#$%^&*()_+'>Klik di sini</a>";
?>
hal2.php
<?php
   $value = $_GET['param'];
   echo "Nilai parameter: ".$value;
?>
Di dalam script hal1.php di atas terdapat hyperlink yang diarahkan ke URL ‘hal2.php?param=hello world!@#$%^&*()_+‘. yang mana URL tersebut terdapat sebuah parameter. Selanjutnya di script hal2.php, nantinya nilai parameter tersebut akan dibaca kemudian ditampilkan.

OK, apa yang terjadi ketika link yang ada di hal1.php tersebut diklik? Perhatikan tampilan di bawah ini
Ternyata tidak semua karakter dalam parameternya terbaca di script hal2.php. Dalam hal ini, karakter yang tidak terbaca adalah ‘#$%^&*()_+‘. Mengapa bisa demikian? Ya.. karena karakter tersebut dianggap bukan karakter yang valid untuk sebuah URL. Lantas, bagaimana solusinya jika kita ingin mempassing nilai parameter yang terdiri dari karakter-karakter tersebut melalui GET request atau melalui URL? Ya… caranya dengan mengkonvert karakter parameter URL dengan urlencode(). Sekarang kita modifikasi script hal1.php nya dengan menambahkan urlencode() di parameter URL nya.

hal1.php
<?php
   echo "<a href='hal2.php?param=".urlencode('hello world!@#$%^&*()_+')."'>Klik di sini</a>";
?>
dan setelah link yang ada tersebut diklik hasilnya adalah seperti pada gambar berikut

akhirnya bisa muncul secara utuh nilai parameternya. Dengan function urlencode() tersebut, nilai parameter ‘hello world!@#$%^&*()_+‘ dikonvert menjadi ‘hello+world!%40%23%24%25^%26*()_%2B‘. Perhatikan, bahwa beberapa karakter diubah menjadi karakter lain yang berupa tanda % diikuti dengan kode hexadecimal, salah satu contohnya: karakter @ diubah menjadi %40.

Sudah paham kan sekarang manfaat urlencode? Selanjutnya saya berikan contoh lain penerapan penggunaan urlencode() ini, yaitu pada proses passing parameter berupa nomor HP melalui URL. Nomor HP bisa memiliki format +628XXXXXXXX (disertai kode negara). Sekarang misalkan kita punya script berikut ini:

hal1.php
<?php
   echo "<a href='hal2.php?nohp=+628123456789'>Klik di sini</a>";
?>
hal2.php
<?php
   $value = $_GET['nohp'];
   echo "Nomor HP: ".$value;
?>
Apabila link yang ada di hal1.php diklik, maka tanda + yang terletak di depan nomor HP tersebut tidak akan terbaca di hal2.php nya


Sehingga untuk solusi kasus di atas, kita kembali bisa menggunakan urlencode()
<?php
   echo "<a href='hal2.php?nohp=".urlencode('+628123456789')."'>Klik di sini</a>";
?>


EmoticonEmoticon