CURL và cách sử dụng trong PHP

Chúng tôi rất vui mừng được chia sẻ kiến thức sâu sắc về từ khóa Curl php la gi để tối ưu hóa nội dung trang web và chiến dịch tiếp thị trực tuyến. Bài viết cung cấp phương pháp tìm kiếm, phân tích và lựa chọn từ khóa phù hợp, cùng với chiến lược và công cụ hữu ích. Hy vọng thông tin này sẽ giúp bạn xây dựng chiến lược thành công và thu hút lưu lượng người dùng. Cảm ơn sự quan tâm và hãy tiếp tục theo dõi blog để cập nhật kiến thức mới nhất.

CURL là bộ thư viện được sử dụng để giúp thực hiện việc chuyển tài liệu thông qua nhiều giao thức khác nhau (như HTTP, FPT…). Với giao thức HTTP, cURL tương trợ việc gửi tài liệu sử dụng tất cả những phương thức hiện có như GET, POST, PUT, DELETE… cURL cũng tương trợ việc chuyền tài liệu sử dụng giao thức HTTPS. Ngoài ra, tất cả chúng ta cũng đều có thể thực hiện việc xác thực request gửi đi thông qua cURL. Việc xác thực có thể được thực hiện thông qua việc thiết lập header cho request hoặc sử dụng cookies…

Bạn Đang Xem: CURL và cách sử dụng trong PHP

Trong nội dung bài viết này tất cả chúng ta sẽ tìm hiểu cURL được sử dụng trong tiếng nói PHP thế nào.

Lưu ý: Nếu khách hàng sử dụng Linux thì sau lúc đọc nội dung bài viết này chúng ta cũng có thể tham khảo thêm nội dung bài viết sử dụng curl trên hành lang cửa số dòng lệnh để biết phương pháp sử dụng câu lệnh curl trên terminal của Linux.

Một ứng dụng CURL thường có 3 bước cơ bản:

Bước 1: Khởi tạo CURL

Bước 2: Cấu hình thông số cho CURL

Bước 3: Thực thi CURL

Bước 4: Ngắt CURL, phóng thích tài liệu

// Tạo mới một CURL $ch = curl_init(); // Cấu hình cho CURL curl_setopt($ch, CURLOPT_URL, “https://viblo.asia/”); // Thực thi CURL curl_exec($ch); // Ngắt CURL, phóng thích curl_close($ch);

Trong phần cấu hình, tất cả chúng ta đặc biệt quan trọng lưu ý đến lệnh curl_setopt(1,2,3);

Xem Thêm : AFC Asian Cup là giải gì? Thành tích của ĐT Việt Nam như thế nào?

Đây là một hàm quan trọng trong CURL để xử lí các tài liệu vào.

Curl_setopt(1,2,3) có 3 thông số nguồn vào:

  • một là đối tượng người sử dụng CURL

  • 2 là tên gọi cấu hình

  • 3 là giá trị Một số tên cấu hình thông dụng với CURL:

  • CURLOPT_URL: đường dẫn tới URL cần xử lý

  • CURLOPT_RETURNTRANSFER: nếu true thì sẽ trả kết quả về ở hàm curl_exec nên ta phải echo kết quả đó mới in lên trình duyệt, nếu false thì thực thi là nó in kết quả lên trình duyệt luôn

  • CURLOPT_USERAGENT: Dùng làm giả lập đang gửi ở trình duyệt nào (user agent)

  • CURLOPT_TIMEOUT: Thiết lập thời kì sống của một request CURL

  • CURLOPT_FILE: Lưu kết quả vào file

  • CURLOPT_POSTFIELDS: giá trị của nó đấy là một mảng các key => value, tương ứng với name và value của nó trong các thẻ input khi submit FORM ….. Ngoài ra còn tồn tại rất nhiều Option với những value khác nữa khi đối chiếu với hàm CURL_setopt mà trong nội dung bài viết này sẽ không thể liệt kê hết được. Nếu các bạn thực sự quan tâm có thể vào trang chủ của php để tìm hiểu thêm: http://php.net/manual/en/function.curl-setopt.php

Ví dụ sau sử dụng CURL gọi theo phương thức GET lấy tài liệu JSON thời tiết ngày nay của TP. Hà Nội, Việt Nam từ dịch vụ thời tiết của YAHOO:

<?//- $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 0, CURLOPT_URL => ‘https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%20in%20(select%20woeid%20from%20geo.places(1)%20where%20text%3D%22hanoi%2C%20vietnam%22)&format=jsonvàamp;env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys’, CURLOPT_USERAGENT => ‘Viblo test cURL Request’, CURLOPT_SSL_VERIFYPEER => false )); $resp = curl_exec($curl); //Tài liệu thời tiết ở dạng JSON $weather = json_decode($resp); var_dump($weather); curl_close($curl);

Ví dụ sử dụng CURL POST

Xem Thêm : Tính từ là gì trong tiếng việt ? Cho ví dụ minh họa ? Ngữ văn lớp 4, lớp 5, lớp 6

Ví dụ sau sử dụng dịch vụ chạy thử REST tại địa chỉ https://reqres.in/api/register để thử POST đăng nhập mạng lưới hệ thống. tin tức đăng nhập gồm email và passowrd. Bạn chạy thử, thử thay cả email khác.

//- $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => ‘https://reqres.in/api/register’, CURLOPT_USERAGENT => ‘Viblo Exmaple POST’, CURLOPT_POST => 1, CURLOPT_SSL_VERIFYPEER => false, //Bỏ kiểm SSL CURLOPT_POSTFIELDS => http_build_query(array( ’email’ => ‘sydney@fife’, ‘password’ => ‘pistol’ )) )); $resp = curl_exec($curl); var_dump($resp); curl_close($curl); //- ?>

Rất nhiều dịch vụ Webservice ví dụ của Google, Facebook … sử dụng REST post JSON để thao tác, chứ không hẳn là POST kiểu như FORM HTML post lên, trong trường hợp này thực hiện các bước

  • Mảng tài liệu POST phải chuyển thành chuỗi json với hàm json_encode
  • Thiết lập thêm CURLOPT_HTTPHEADER với kiểu application/json
  • Thiết lập thêm CURLOPT_CUSTOMREQUEST là POST, PUT … tùy thuộc dịch vụ

Ví dụ

$data = array(“name” => “Hagrid”, “age” => “36”); $data_string = json_encode($data); $curl = curl_init(‘http://example.api.com’); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, “POST”); curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HTTPHEADER, array( ‘Content-Type: application/json’, ‘Content-Length: ‘ . strlen($data_string)) ); $result = curl_exec($curl); curl_close($curl);

Với ba đoạn trên, bạn có thẩy lấy tài liệu từ site khác đưa vào site đích một cách đơn giản. Ngoài ra chúng ta cũng có thể sử dụng một số hàm sau cho mục tiêu nâng mạnh hơn.đặt một User-agent tùy biến ( giả tên trình duyệt một cách ngẫu nhiên-“random”)

function getRandomUserAgent() { $userAgents=array( “Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6”, “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)”, “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)”, “Opera/9.20 (Windows NT 6.0; U; en)”, “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.50”, “Mozilla/4.0 (compatible; MSIE 6.0; MSIE 5.5; Windows NT 5.1) Opera 7.02 [en]”, “Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; fr; rv:1.7) Gecko/20040624 Firefox/0.9”, “Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/48 (like Gecko) Safari/48” ); $random = rand(0,count($userAgents)-1); return $userAgents[$random]; }

Sau đó có thể dùng tiếp Option CURLOPT_USERAGENT để tại vị trình duyệt giả

curl_setopt($ch,CURLOPT_USERAGENT,getRandomUserAgent());

  • Xử lí redirects

Để xử lí điều phối URL, ta có thể sử dụng Option CURLOPT_FOLLOWLOCATION với Value là TRUE. Số lượng lớn số 1 của redirects được tinh chỉnh và điều khiển bằng Option CURLOPT_MAXREDIRS

curl_setopt($ch,CURLOPT_FOLLOWLOCATION,TRUE); curl_setopt($ch,CURLOPT_MAXREDIRS,2);//only 2 redirects

http://php.net/manual/en/book.curl.php

You May Also Like

About the Author: v1000