Cara Menggunakan Curl pada PHP

June 11, 2019 by



Ada 4 langkah penggunaan Curl di PHP:
  1. Inisialisasi;
  2. Set Option;
  3. Eksekusi Curl;
  4. Tutup Curl;

Setiap kita ingin menggunakan fungsi Curl, kita haru melakukan inisialisasi terlebih dahulu dengan cara seperti ini:
<?php 
// create curl resource 
$ch = curl_init(); 
Fungsi yang digunakan untuk melakukan inisialisasi adalah curl_init().

Setelah itu, kita harus memberikan nilai options seperti alamat URL yang akan dituju, format hasilnya, header, dll.

Untuk memberikan options, kita menggunakan fungsi curl_setopt() seperti ini:

 // set url 
curl_setopt($ch, CURLOPT_URL, "example.com"); 
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
//return the transfer as a string 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
Berikutnya melakukan eksekusi:
// $output contains the output string 
$output = curl_exec($ch); 
Pada tahapan eksekusi, Curl akan melakukan HTTP Request sesuai dengan options yang diberikan.

Fungsi yang digunakan untuk mengeksekusi Curl adalah curl_exec().

Karena kita sudah memberikan options hasil Curl akan berupa string, maka variabel $output akan berisi sebuah string.

Kita bisa melihat isinya dengan echo.Terakhir menutup Curl dengan fungsi curl_close(), karena sudah tidak digunakan lagi.
ose curl resource to free up system resources 
curl_close($ch); 
Kode lengkapnya akan seperti ini:
<?php 
    // persiapkan curl
    $ch = curl_init(); 

    // set url 
    curl_setopt($ch, CURLOPT_URL, "riventusa.blogspot.com");

    // return the transfer as a string 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
    if(curl_exec($ch) === false) {
  echo 'Curl error: ' . curl_error($ch);
 } else {
  echo 'Operation completed without any errors';
 } 
    // $output contains the output string 
    $output = curl_exec($ch); 

    // tutup curl 
    curl_close($ch);      

    // menampilkan hasil curl
    echo $output;
?>
Coba ubah URL-nya dari riventusa.blogspot.com menjadi https://www.google.co.id/.

jika ada error ceertificate

This works well for me:
  1. Download the certificate from: https://curl.haxx.se/ca/cacert.pem
  2. Rename the cacert.pem file into curl-ca-bundle.crt
  3. Copy the file into C:\xampp\apache\bin
  4. Restart apache

CONTOH LAIN
<?php

function http_request($url){
    // persiapkan curl
    $ch = curl_init(); 

    // set url 
    curl_setopt($ch, CURLOPT_URL, $url);
    
    // set user agent    
    curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');

    // return the transfer as a string 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
   if(curl_exec($ch) === false) {
echo 'Curl error: ' . curl_error($ch);
} else {
echo 'Operation completed without any errors';
}
    // $output contains the output string 
    $output = curl_exec($ch); 

    // tutup curl 
    curl_close($ch);      

    // mengembalikan hasil curl
    return $output;
}

$profile = http_request("https://reqres.in/api/users");

// ubah string JSON menjadi array
$profile = json_decode($profile, TRUE);
?>

<!DOCTYPE html>
<html>
<head>
    <title>Curl Data JSON</title>
</head>

<body>

<!--<img src="qeqwq" width="64" />-->
<br>
<p>
<?php 
//echo "<pre>";
//print_r($profile);
//echo "</pre>";
foreach($profile["data"] as $profile1 => $value) {
//die(var_dump($value));
echo "ID: ".$value["id"]."<br/>";
echo "Nama:".$value["first_name"]."<br>";
echo "Email: ".$value["email"]."<br>";
echo "Last Name: ".$value["last_name"];
}
?>

</p>

</body>
</html>



CONTOH LAIN KEDUA

<?php
$ch = curl_init();
$data=array(
'username'=>'admin',
'pass'=>'password',
);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_URL, "https://contoh.com/login.php");
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie-name.txt');  
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie-name.txt');
$hasil=curl_exec($ch);
curl_close ($ch);
echo $hasil;
?>

thanks.


0 comments:

Post a Comment