cURL viết tắt của ‘Client URL’ là một công cụ dòng lệnh (command line tool) dùng để kiểm tra kết nối từ URL và cho phép truyền dữ liệu. cURL sử dụng nhiều giao thức hỗ trợ khác nhau như: HTTP, HTTPS, FTPS,… cURL được viết bởi Daniel Stenberg vào năm 1997. 

PHP cũng hỗ trợ libcurl, qua đó cho phép các lập trình viên PHP tương tác với các máy chủ khác thông qua nhiều giao thức. Đặc biệt cURL cũng hỗ trợ HTTP form based upload, proxies, cookies và user+password authentication.

PHP và cURL

Mặc dù ra đời đã lâu (1997) và hiện nay có nhiều thư viện mới với chức năng tương tự  được phát triển nhưng cURL vẫn luôn là một tiện ích quan trọng đối với các lập trình viên. Đặc biệt trong xu hướng hiện nay, API trở thành một bộ phận quan trọng của công nghiệp phần mềm. 

cURL không phải là các hàm tiện ích được xây dựng và tích hợp sẵn (built-in functions) trong ngôn ngữ PHP, nó được phát hành như một gói mở rộng và được cài đặt thêm trong quá trình cài đặt ngôn ngữ PHP. Do tính phổ biến của nó, cURL thường được mặc định cài đặt và mở sẵn trong quá trình cài đặt ngôn ngữ.

Sử Dụng

cURL hỗ trợ rất nhiều giao thức. Tuy nhiên, chúng ta thường chỉ làm việc với HTTP/HTTPS và tuy chỉ làm việc với 2 giao thức này, chúng ta cũng sẽ gặp rất rất nhiều trường hợp. May mắn, cURL là một thư viện khá tốt, nó đáp ứng hầu hết những nhu cầu của chúng ta. Các bạn có thể xem chi tiết tài liệu về cURL tại đây

Bên dưới, mình sẽ để một đoạn code ví dụ cách sử dụng cURL một cách đơn giản nhất, để các bạn có thể hình dung các thành phần của một request thông qua cURL (tất nhiên là với ngôn ngữ PHP).