CURL là gì? Cách sử dụng Curl


cURL là gì?

cURL là một công cụ dòng lệnh và thư viện được sử dụng để truyền dữ liệu qua nhiều giao thức khác nhau (như HTTP, HTTPS, FTP, FTPS, SCP, SFTP, FILE, IMAP, SMTP, POP3, RTSP và RTMP…). Được tạo ra vào năm 1997 bởi Daniel Stenberg và được viết bằng ngôn ngữ C. Với giao thức HTTP, cURL hỗ trợ việc gửi yêu cầu sử dụng các phương thức như GET, POST, PUT, DELETE…

Cơ bản về việc sử dụng CURL PHP

Với giao thức HTTP, CURL hỗ trợ việc gửi yêu cầu sử dụng các phương thức như GET, POST, PUT, DELETE… Trong PHP, có sẵn các API để làm việc với thư viện này với đầy đủ chức năng của CURL PHP.

Có Thể Bạn Quan Tâm :   VJShop.vn

CURL hỗ trợ truyền dữ liệu qua giao thức HTTPS. Bạn có thể sử dụng CURL trong PHP để thực hiện các yêu cầu GET và POST, truy cập vào dịch vụ REST API kết hợp với JSON hoặc xác thực OAUTH.

Khi sử dụng CURL, có 3 bước cơ bản:

  1. Khởi tạo CURL
  2. Cấu hình các tham số cho CURL
  3. Thực thi CURL
  4. Giải phóng tài nguyên CURL
<?php
$ch = curl_init(); // Khởi tạo CURL
curl_setopt($ch, CURLOPT_URL,"https://topdev.vn"); // Xác định địa chỉ cần thực thi
curl_setopt($ch, CURLOPT_POST, 1); // POST
// Và các tham số khác... Sử dụng curl_setopt để định giá trị cho mỗi tham số.
curl_exec ($ch); // Thực thi CURL
curl_close ($ch); // Đóng CURL để giải phóng tài nguyên
?>

Thiết lập CURL

Bạn có thể cấu hình thêm một hoặc nhiều tùy chọn khác cho CURL bằng cách sử dụng curl_setopt. Những curl_setopt này phải được đặt trước khi thực thi CURL để có hiệu lực. Đây là một hàm quan trọng trong CURL để xử lý dữ liệu đầu vào:

  • CURLOPT_RETURNTRANSFER: Đặt thành TRUE để curl_exec() trả về chuỗi chứ không xuất thẳng ra màn hình.
  • CURLOPT_CONNECTTIMEOUT: Thời gian cho phép CURL cố gắng kết nối (đơn vị giây), 0 vô tận
  • CURLOPT_USERAGENT: Nội dung của dòng User-Agent: trong header của HTTP khi gửi yêu cầu
  • CURLOPT_URL: URL mà CURL gửi yêu cầu
  • CURLOPT_POST: Đặt thành TRUE – Thiết lập yêu cầu gửi theo phương thức POST
  • CURLOPT_POSTFIELDS: Mảng dữ liệu để POST
Có Thể Bạn Quan Tâm :   ImToken là gì? Hướng dẫn cách sử dụng ví imToken A-Z

Bạn có thể thiết lập nhiều tùy chọn cùng một lúc bằng cách sử dụng hàm curl_setopt_array():

$data = array(
  'name' => 'TopDev',
  'data' => array(1,2,3,4),
  'value' => 'Viec Lam IT'
);
// Có thể phải dùng thêm hàm chuyển đổi mảng thành chuỗi URL encoded
//$data = http_build_query($data) nếu POST
$curl = curl_init();
$options = array(
  CURLOPT_RETURNTRANSFER => 1,
  CURLOPT_URL => 'https://topdev.vn/api/',
  CURLOPT_POST => true,
  CURLOPT_USERAGENT => "Safari/8.0",
  CURLOPT_POSTFIELDS => $data
);
curl_setopt_array($curl, $options);

Gửi yêu cầu với CURL

Sau khi tạo tài nguyên CURL và thiết lập các tùy chọn như trên, bạn có thể gửi yêu cầu với CURL bằng cách sử dụng hàm curl_exec(). Kết quả trả về là giá trị FALSE hoặc TRUE và giá trị trả về khi CURLOPT_RETURNTRANSFER được đặt thành TRUE.

$curl = curl_init();
// Code khác
$result = curl_exec($curl);
if ($result === FALSE) {
  echo "Lỗi CURL";
} else {
  //Thành công!, kết quả nằm trong biến $result
}

Biến $result có thể là JSON, string…

Có Thể Bạn Quan Tâm :   Dart là gì? Giới thiệu cơ bản về ngôn ngữ lập trình Dart

Sau khi gửi yêu cầu thành công và nhận được giá trị trả về, bạn cần đóng CURL bằng hàm curl_close($curl);

Ví dụ sử dụng CURL để GET dữ liệu từ JSON

$curl = curl_init();
curl_setopt_array($curl, array(
  CURLOPT_RETURNTRANSFER => 0,
  CURLOPT_URL => 'https://topdev.vn/blog/json/v1/',
  CURLOPT_USERAGENT => 'TopDev Test Api',
  CURLOPT_SSL_VERIFYPEER => false
));
$resp = curl_exec($curl);
//Dữ liệu ở dạng JSON
$data = json_decode($resp);
var_dump($data);
curl_close($curl);

Một số bài viết liên quan

  • Đánh giá ưu điểm và nhược điểm của PHP
  • 10 PHP Instagram Scripts & Widgets tốt nhất
  • Hàm json_encode và json_decode trong PHP
  • 10 Framework tốt nhất hiện nay cho PHP
  • Sử dụng mảng đúng cách trong PHP
  • 10 điều bạn cần biết về PHP7

Back to top button