Perhatikan contoh script berikut ini :
hal1.php
<?php
echo "<a href='hal2.php?param=hello world!@#$%^&*()_+'>Klik di sini</a>";
?>
hal2.php
<?phpDi 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.
$value = $_GET['param'];
echo "Nilai parameter: ".$value;
?>
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 :
Alhamdulillaah 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
<?phphal2.php
echo "<a href='hal2.php?nohp=+628123456789'>Klik di sini</a>";
?>
<?phpApabila link yang ada di hal1.php diklik, maka tanda + yang terletak di depan nomor HP tersebut tidak akan terbaca di hal2.php nya.
$value = $_GET['nohp'];
echo "Nomor HP: ".$value;
?>
Sehingga untuk solusi kasus di atas, kita kembali bisa menggunakan urlencode()
<?php
echo "<a href='hal2.php?nohp=".urlencode('+628123456789')."'>Klik di sini</a>";
?>
OK mudah-mudahan artikel singkat ini bisa bermanfaat untuk Anda.
Sumber :
Blog Rosihanari
0 Response to "Manfaat Function Urlencode() di PHP"
Posting Komentar