Ferdi Huang, 2023 | Kode PHP merupakan kode yang umum digunakan dalam dunia pemrograman web, khususnya bagian back-end. Pada kesempatan ini, penulis ingin membagikan pengalaman penulis dalam memeriksa ketersediaan sebuah link menggunakan kode PHP.
Beberapa hari kemarin, penulis mengalami kebingungan karena melupakan nomor port yang digunakan di jaringan internet rumah penulis. Penulis kemudian ingat bahwa dulu pernah mempelajari bahasa pemrograman PHP dan HTML. Adapun port yang lupa tersebut sudah penulis ketahui rentangnya sebelumnya, sehingga kode PHP tidak akan diproses terlalu lama.
Cara Mengeksekusi Program PHP di Laptop/Komputer Pribadi
Untuk mengeksekusi suatu program atau file berbahasa PHP, tidak bisa langsung menggunakan browser bawaan laptop seperti file berbahasa HTML/JavaScript. Namun, harus menggunakan sebuah aplikasi khusus atau diunggah terlebih dahulu ke sebuah penyedia hosting.
Kode PHP untuk Memeriksa Ketersediaan Sebuah Link
Maksud utama postingan ini adalah untuk memberikan penjelasan terkait apakah suatu link itu accessible (bisa diakses) atau tidak oleh komputer kita. Dalam arti yang lain, kode PHP ini akan memeriksa sebuah link tersedia atau tidak di internet.
Penulis pada awalnya mendapatkan dua kode PHP dari
sini (dengan modifikasi dan perbaikan seperlunya), yang penulis rangkum sebagai berikut.
Kode pertama ini menggunakan fungsi
get_headers
sebagai berikut.
<?php
$url = "https://ferdihuang.blogspot.com";
$headers = @get_headers($url);
if($headers && strpos($headers[0],'404') === false)
{
echo "URL ".$url." Exists <br/>";
}
else
{
echo "URL ".$url." Does Not Exist <br/>";
}
?>
Fungsi tersebut akan membaca header HTTP untuk memeriksa keberadaan suatu URL/link. Hasil eksekusi daripada kode di atas yaitu sebagai berikut.
Ini berarti bahwa link yang diperiksa dalam program PHP tersebut (yaitu link menuju blog ini,
https://ferdihuang.blogspot.com) tersedia atau aktif di internet.
Jika kode pertama di atas menggunakan fungsi
get_headers, maka kode kedua ini menggunakan Curl PHP. Adapun Curl adalah sebuah
library yang memudahkan kita untuk membuat
HTTP Request melalui PHP.
<?php
$url = "https://ferdihuang.blogspot.com";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_NOBODY, true);
$result = curl_exec($curl);
if ($result !== false)
{
$status_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if ($status_code == 404)
{
echo "URL ".$url." Does Not Exist <br/>";
}
else
{
echo "URL ".$url." Exists <br/>";
}
}
else
{
echo "URL ".$url." Does Not Exist <br/>";
}
?>
Hasil daripada kode kedua ini juga sama seperti yang dihasilkan kode pertama. Namun untuk source code yang disusun memang lebih panjang kode kedua ini walaupun pada intinya tujuannya sama.
Pembaca sekalian bisa menyimpan kedua kode di atas ke dalam dua buah file yang berbeda untuk menguji keberhasilannya.
Kombinasi dengan Fungsi FOR
Dua kode di atas hanya mampu memeriksa satu link sekali dieksekusi. Jika ingin memeriksa link/URL lainnya maka harus mengubah source code terlebih dahulu. Dikarenakan penulis ingin mencari URL berdasarkan portnya, maka sangat merepotkan dan memakan waktu sekali jika harus mengganti satu-satu. Misalnya seperti dalam kasus penulis, penulis akan mencari port yang digunakan pada IP Address "192.168.1.1" (bukan IP sebenarnya) dengan rentang port yang diketahui yaitu antara 1000 dan 1100 (juga bukan merupakan port yang sebenarnya).
Dalam kasus tersebut, penulis menggunakan fungsi for untuk memudahkan pemeriksaan secara terus menerus dari port 1000 hingga port 1100. Berikut ini adalah source code-nya, dengan menggunakan kode pertama.
<?php
for($u=1000; $u<=1100; $u++){
$url = "http://192.168.1.1:".$u;
$headers = @get_headers($url);
if($headers && strpos($headers[0],'404') === false)
{
echo "URL ".$url." Exists <br/>";
break;
}
else
{
echo "URL ".$url." Does Not Exist <br/>";
}
}
?>
Dalam menguji source code tersebut, akan ada sebuah list atau daftar dari beberapa link yang diuji dari port 1000 hingga port 1100. Link yang aktif akan dimunculkan di urutan terakhir. Karena ketika program PHP tersebut sudah menemukan link yang aktif, program akan menghentikan perulangan fungsi FOR. Hal ini ditunjukkan dengan kode break; pada baris ke-8.
Hasil pengujian program di atas terlihat seperti berikut ini.
Dikarenakan memang tidak ada IP Address "192.168.1.1" pada sistem jaringan penulis, maka keseluruhan percobaan akan menghasilkan "URL Does Not Exist", seperti gambar di atas (percobaan hanya dilakukan dari port 1000 ke port 1010). Terkait yang muncul hanyalah port 1000 hingga 1004, hal ini dikarenakan sistem eksekusi PHP di komputer penulis hanya dapat diproses selama maksimal 120 detik. Sehingga harus menyesuaikan kembali untuk bagian yang belum dieksekusi.
Dan inilah contoh hasil eksekusi kode PHP tersebut jika ada link yang aktif atau accessible (link percobaan disembunyikan untuk alasan keamanan).
Demikianlah postingan hari ini. Semoga dapat memberikan ilmu yang bermanfaat. Jangan lupa tinggalkan komentar dan tetap terhubung bersama penulis melalui kanal yang disediakan di sudut-sudut blog ini.
Tidak ada komentar:
Posting Komentar