Marquee

.: Selamat datang di blog Ferdi Huang! .:. .:. Selamat berselancar di dalam blog ini. .:. Terima kasih atas kunjungan Anda :.

Translate

Kamis, 13 Juli 2023

Kode PHP Sederhana untuk Memeriksa Sebuah Link

Ilustrasi Kode PHP | Oleh KOBU Agency melalui Unsplash

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. 

Penulis pribadi menggunakan aplikasi XAMPP untuk Windows. Aplikasi XAMPP bisa diunduh di laman https://www.apachefriends.org/download.html.

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 PHP Pertama
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.

  • Kode PHP Kedua 
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

Postingan Teratas

Alur Klaim Kacamata Menggunakan BPJS Kesehatan