cURL là gì? Cách sử dụng Curl
cURL là gì?
cURL là một command line tool và thư viện được sử dụng để truyền dữ liệu thông qua nhiều giao thức khác nhau (như HTTP, HTTPS, FTP, FTPS, SCP, SFTP, FILE, IMAP, SMTP, POP3, RTSP và RTMP…). Được đời từ năm 1997 viết bởi Daniel Stenberg viết bằng C. Với giao thức HTTP, cURL hỗ trợ việc gửi đi một request với tất cả các phương thức hiện có như GET, POST, PUT, DELETE…
Cơ bản về sử dụng cURL PHP
Với giao thức HTTP, cURL hỗ trợ việc gửi đi một request với tất cả các phương thức hiện có như GET, POST, PUT, DELETE…Trong PHP có cung cấp các API để làm việc với thư viện này với các chức năng khá đầy đủ cURL PHP.
cURL có hỗ trợ việc truyền dữ liệu qua giao thức HTTPS. Ta có thể dùng cURL trong Php để GET và POST dữ liệu, truy cập REST API service có kết hợp với JSON hoặc xác thực OAUTH.
Khi sử dụng cURL thường có 3 bước cơ bản:
- Khởi tạo cURL
- Cấu hình tham số cho cURL
- Thực thi cURL
- Ngắt cURL, giải phóng dữ liệu
$ch = curl_init(); //khai bá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 ... dùng curl_setopt để dịnh giá trị cho mỗi tham số. curl_exec ($ch); // thực thi curl curl_close ($ch); // đóng curl để giải phóng vùng nhớ ?>
Thiết lập cURL
Bạn có thể cấu hình thêm một hoặc nhiều option nữa cho curl bằng curl_setopt
. Các curl_setopt
này phải được đặt trước curl_exec
thì mới có hiệu lực. Đây là một hàm quan trọng trong cURL để xử lí các dữ liệu vào:
CURLOPT_RETURNTRANSFER
: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 (giây), 0 vô tậnCURLOPT_USERAGENT
: Nội dung của dòng User-Agent: trong header của HTTP khi gửi yêu cầuCURLOPT_URL
: URL mà cURL gửi yêu cầuCURLOPT_POST
: TRUE – Thiết lập yêu cẩu gửi theo phương thức POSTCURLOPT_POSTFIELDS
: Mảng dữ liệu để POST
Bạn có thi hành nhiều thiết lập một lúc bằng hàm curl_setopt_array():
//Dữ liệu để POST $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 tham số mảng thành chuỗi URL encode //$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 request với cURL
Tạo tài nguyên cURL và thiết lập xong như trên, ta tiến hành gửi request với cURL bằng hàm curl_exec(). Kết quả trả về false
hoặc true
và giá trị là chuỗi trả về khi CURLOPT_RETURNTRANSFER
thiết lập true
.
$curl = curl_init(); // code khác $result = curl_exec($curl); if ($result === FALSE) { echo "CCURL Error"; } else { //Succeess!, kết quả trong $result }
$result
trả về có thể là JSON, string…
Sau khi gửi yêu cầu thành công, nhận hết giá trị trả về bạn cần đóng CCURL 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);
- Đánh giá điểm mạnh và điểm yếu của Php
- 10 PHP Instagram Scripts & Widgets tốt nhất
- Hàm json_encode và json_decode trong PHP
- 10 Frameworks 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
- G Gamma AI là gì? Cách tạo slide chuyên nghiệp chỉ trong vài phút
- P Power BI là gì? Vì sao doanh nghiệp nên sử dụng PBI?
- K KICC HCMC x TOPDEV – Bước đệm nâng tầm sự nghiệp cho nhân tài IT Việt Nam
- T Trello là gì? Cách sử dụng Trello để quản lý công việc
- T TOP 10 SỰ KIỆN CÔNG NGHỆ THƯỜNG NIÊN KHÔNG NÊN BỎ LỠ
- T Tìm hiểu Laptop AI – So sánh Laptop AI với Laptop thường
- M MySQL vs MS SQL Server: Phân biệt hai RDBMS phổ biến nhất
- S SearchGPT là gì? Công cụ tìm kiếm mới có thể đánh bại Google?
- C Cách tích hợp ChatGPT vào Google Search siêu dễ
- V VoiceGPT là gì? Giới thiệu tính năng và cách cài đặt sử dụng Voice GPT