Hướng dẫn dùng curl h trong PHP
cURL là gì?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 ra đời từ năm 1997, được viết bởi Daniel Stenberg. Chúng được lập trình để hoạt động mà không cần có sự tương tác của người dùng. Vậy công dụng của cURL là gì? Show
Để hiểu một cách đơn giản hơn thì về cơ bản, bạn có thể sử dụng lệnh cURL để upload và tải xuống nội dung từ internet. Nếu biết cách sử dụng và khai thác nó đúng mức, cURL sẽ trở thành một công cụ cực kỳ mạnh mẽ. cURL Command hỗ trợ giao thức nào?cURL có thể hỗ trợ rất nhiều giao thứccURL Command có thể hỗ trợ các giao thức (protocol) sau: HTTP, HTTPS, IMAP, IMAPS, SMB, MBS, SFTP, GOPHER, LDAP, LDAPS, SCP, FTP, FTPS, TELNET, POP3, POP3S, SMTP, SMTPS. Ngoài những protocol trên, cURL cũng hỗ trợ thêm một vài giao thức khác kém phổ biến và ít quan trọng hơn. Các kiến thức liên quan cURL mà bạn cần biết:
Chức năng của cURL là gì?Bạn có thể dùng cURL để tải tập tin, dữ liệu và tải các trang web trên mạng internetMột trong những chức năng cơ bản nhất của cURL là giúp người dùng tải xuống máy một trang web trên mạng internet. Ngoài ra, bạn cũng có thể dùng nó để vận chuyển các tập tin, hình ảnh, dữ liệu,… từ đâu đó đến máy chủ hoặc từ máy chủ đến đâu đó. Không chỉ vậy, cURL còn cho phép bạn kiểm tra cookies nào đã được tải trên URL. Cách sử dụng cURL PHP cơ bảnCác bước sử dụng cURL PHPĐể dùng cURL trong PHP, trước tiên, hệ thống của bạn cần có bộ thư viện libcurl của PHP. Nếu dùng các package cài đặt PHP như XAMP, WAMP, MAMP thì bạn có thể yên tâm vì thư viện libcurl đã được tích hợp sẵn trên đó. Theo đó, bạn sẽ tuân thủ 4 bước để sử dụng cURL trong PHP. Cụ thể là:
Cụ thể như sau: Hàm khởi tạo cURL là gì?Để khởi tạo cURL, bạn sử dụng hàm: curl init (). Hệ thống sẽ trả về cho bạn một resource (một kiểu dữ liệu được định nghĩa trong PHP). Thiết lập tùy chọn requestĐể thiết lập tùy chọn request, bạn cần sử dụng hàm: curl_setopt(). Lưu ý, các curl_setopt() cần phải đứng trước curl_exec() thì mới có tác dụng. curl_setopt() là một hàm quan trọng trong cURL, được sử dụng để xử lý các dữ liệu đầu vào như: content-type, charset hoặc giá trị cookies, giao thức HTTP,… Curl_setopt() thường sẽ có 3 tham số đầu vào, ngăn cách với nhau bằng dấu phẩy:
(Ví dụ mẫu: curl_setopt($ch, CURLOPT_URL, ‘https://www.matbao.net/’ ). Một số tên cấu hình thông dụng với cURL có thể kể đến là:
Trong trường hợp muốn thực hiện nhiều thiết lập tùy chọn cùng một lúc, bạn có thể sử dụng hàm curl_setopt_array(). Khi đó, cấu trúc của hàm curl_setopt_array() sẽ có dạng như sau: curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => 'https://www.matbao.net/', CURLOPT_USERAGENT => 'Exmaple POST', CURLOPT_POST => 1, CURLOPT_POSTFIELDS => http_build_query(array( 'email' => 'sydney@fife', 'password' => 'pistol' )) Hàm thực thi cURL là gì?Để thực hiện việc gửi request, bạn cần sử dụng hàm: curl_exec(). Nếu ở bước 2, bạn thiết lập tùy chọn request với cấu trúc: curl_setop($ch, CURLOPT_RETURNTRANSFER, 1) thì giá trị trả về của curl_exec() sẽ là một chuỗi khi kết quả là TRUE. Đóng request, giải phóng tài nguyênĐể đóng request, bạn cần sử dụng hàm: curl_close(). Thao tác này sẽ giúp bạn tiết kiệm đáng kể tài nguyên của hệ thông và nâng cao hiệu suất cho server. Các lệnh cần biết của cURL trong LinuxTrong Linux có một số lệnh cURL cơ bản sau:
Hãy cùng Mắt Bão tìm hiểu chi tiết về các lệnh trên. Lệnh kiểm tra phiên bản cURL là gì?Kiểm tra phiên bản sẽ giúp bạn biết được cURL đã được cài đặt hay chưa và nó phù hợp với giao thức nàoTrước khi sử dụng cURL, bạn cần phải đăng nhập VPS bằng cách sử dụng SSH. Để chắc chắn rằng cURL đã được cài đặt vào hệ thống, hãy kiểm tra CURL bằng lệnh: curl –version, sau đó hệ thống sẽ hiển thị phiên bản CURL đang có trên máy. Từ đó, bạn sẽ biết được danh sách các giao thức mà cURL có thể hỗ trợ được. Cú pháp của lệnh cURL là gì?cURL trong Linux có cú pháp như sau: curl [OPTIONS] [URL] Cách sử dụng phổ biến và cơ bản nhất của cURL là hiển thị nội dung trên trang. Ví dụ, nếu muốn xem nội dung của trang yourdomain.com, bạn cần sử dụng cú pháp: curl yourdomain.com. Hệ thống sẽ render (kết xuất) cho bạn mã nguồn trang chủ của domain này. Nếu không gõ giao thức vào thì cURL sẽ ngầm mặc định website này là HTTP. Dùng cURL Command để tải fileLệnh cURL có thể dùng để tải một dữ liệu từ máy chủ ở xa theo 2 cách:
Dưới đây là ví dụ cụ thể cho 2 cách trên: Cách 1:
Cách 2:
curl -o newyourfile.tar.gz http://yourdomain.com/yourfile.tar.gz Lúc này, file sẽ được lưu với tên mới là newyourfile.tar.gz. Ngoài ra, bạn cũng có thể sử dụng cURL để tải nhiều file bằng lệnh sau: curl -O http://yourdomain.com/yourfile.tar.gz -O http://mydomain.com/myfile.tar.gz Lệnh HTTP cURL Command là gì?Một chức năng khác của cURL đó là sử dụng như một server proxy để tải file. Dưới đây là ví dụ minh họa: curl -x sampleproxy.com:8090 -U username:password -O http:// testdomain.com/testfile.tar.gz Trong ví dụ trên, nếu proxy không cần chứng thực thì bạn có thể không viết -U username:password vào cũng được. Ngoài ra, bạn có thể sử dụng cURL để kiểm tra thông tin header của web HTTP. Muốn làm được điều này, bạn cần thực hiện câu lệnh: curl -I www.yourdomain.com Bên cạnh đó, với cURL, bạn còn có thể gửi yêu cầu GET và POST với các lệnh có dạng như sau:
Người dùng cũng có thể xác định các phương pháp HTTP (POST và GET request) trong cùng 1 câu lệnh cURL thông qua tùy chọn -next. Dưới đây là ví dụ câu lệnh mẫu: curl –data “text=Hello” https://myDomain.com/firstPage.jsp --next https://myDomain.com/displayResult.jsp Lệnh cURL cho Cookies là gì?Bạn có thể sử dụng cURL Command để kiểm tra các cookies nào được tải trên URL. Ví dụ, trang web mà bạn truy cập có dạng: https://www.samplewebsite.com, bạn có thể output trang đó dưới dạng một file và lưu cookies bằng cách sử dụng câu lệnh như bên dưới: curl --cookie-jar Mycookies.txt https://www.samplewebsite.com /index.html -O Nếu có sẵn cookies trong file, bạn có thể upload nó lên website thông qua câu lệnh có dạng như sau: curl --cookie Mycookies.txt https://www. samplewebsite.com Lệnh cURL cho FTP là gì?Vậy định nghĩa của giao thức FTP là gì?
Tải file xuống
curl -u username:password -O ftp://nameftpserver/yourfile.tar.gz
Upload file
curl -u username:password -T yourfile.tar.gz ftp://nameftpserver
Lệnh giới hạn output của cURL là gì?Việc không biết được outpout lớn đến đâu khi sử dụng cURL có thể gây một số rắc rối sau này cho bạn, ví dụ như dung lượng file quá lớn khiến máy download chậm, nghẽn mạng,… Do đó để hạn chế tình trạng sử dụng băng thông lớn, bạn có thể giới hạn cURL output bằng cách sử dụng lệnh có dạng như sau: curl --limit-rate 100K http://testdomain.com/samplefile.tar.gz -O Với câu lệnh này thì giới hạn băng thông tải xuống là 100K. cURL là một công cụ dòng lệnh mạnh mẽ và được sử dụng rất phổ biến hiện nay. Hy vọng với những chia sẻ trên đây của “Mắt Bão – nhà cung cấp dịch vụ cho thuê máy chủ uy tín nhất“, bạn đã hiểu hơn về cURL và cách thức thiết lập cũng như sử dụng nó. Chúc các bạn thành công! |