Cuộc gọi cURL tới PHP

cURL là viết tắt của URL máy khách. PHP cURL là một thư viện mở rộng mạnh mẽ nhất của PHP. Nó cho phép người dùng tạo các yêu cầu HTTP trong PHP. Thư viện cURL được sử dụng để liên lạc với các máy chủ khác với sự trợ giúp của nhiều giao thức

cURL cho phép người dùng gửi và nhận dữ liệu thông qua cú pháp URL. cURL giúp dễ dàng giao tiếp giữa các trang web và tên miền khác nhau

cURL được chia thành hai phần. cURL và libcURL

  1. Xoăn. cURL cho phép người dùng gửi và nhận dữ liệu thông qua cú pháp URL
  2. libcURL. libcURL là một thư viện. Nó được tạo ra bởi Daniel Stenberg. Thư viện cURL được sử dụng để liên lạc với các máy chủ khác với sự trợ giúp của nhiều giao thức. Hiện tại, nó hỗ trợ nhiều loại giao thức, bao gồm LDAP, TPS, GOPHER, FTP, HTTP, HTTPS, FILE, HTTP POST, TELNET, DICT, HTTP PUT, tải lên FTP, tiếp tục FTP, Kerberos, tải lên dựa trên HTTP, chứng chỉ TTPS,

Một số hàm cURL cơ bản

S. STT Tên chức năng Mô tả1. curl_init() Hàm này bắt đầu phiên cURL. 2. curl_setopt() Hàm này xác định một tùy chọn khác nhau cho phiên cURL. 3. curl_setopt($ch, option, value)Hàm này xác định giá trị và tùy chọn cho phiên cURL theo tham số "ch". 4. curl_exec() Hàm này thực thi phiên cURL, truyền dữ liệu thực tế và yêu cầu http. 5. curl_close() Hàm này dùng để đóng phiên cURL

Ví dụ cơ bản

Trước khi chuyển sang các ví dụ phức tạp hơn, hãy xem lại ví dụ cơ bản về yêu cầu cURL trong PHP

ví dụ 1

ví dụ 2

ví dụ 3

Các chức năng cURL khác

S. STT Tên chức năng Mô tả1. curl_copy_handle() Hàm này được sử dụng để sao chép một điều khiển cURL với tất cả các tùy chọn của nó. 2. curl_errno() Hàm này trả về số lỗi cuối cùng từ phiên cURL. 3. curl_error() Hàm này trả về chuỗi chứa lỗi cuối cùng của phiên làm việc hiện tại. 4. curl_escape() Hàm này được sử dụng để mã hóa URL của chuỗi đã cho. 5. curl_file_create() Hàm này được sử dụng để tạo đối tượng tệp cURL. 6. curl_getinfo() Hàm này trả về thông tin của lần chuyển cụ thể. 7. curl_multi_add_handle() Hàm này kết nối cURL_handle với cURL_multi_handle. 8. curl_multi_close() Hàm này dùng để đóng nhiều bộ xử lý cURL. 9. curl_multi_info_read() Hàm này nhận thông tin chuyển giao hiện tại. 10. curl_multi_exec() Hàm này thực thi các kết nối phụ của phiên cURL hiện tại. 11. curl_setopt_array() Hàm này đặt nhiều tùy chọn cho phiên cURL. 12. curl_versionHàm này trả về thông tin phiên bản cURL. 13. curl_strerror() Hàm này trả về chuỗi mô tả lỗi đã cho. 14. curl_pause() Hàm này dùng để tạm dừng kết nối cURL. 15. curl_reset() Hàm này được sử dụng để đặt lại tất cả các tùy chọn của phiên cURL

Tiện ích mở rộng cURL hoạt động như thế nào?

Nó chạy bằng cách gửi yêu cầu đến trang web và nó bao gồm các phần sau

  1. Khởi tạo
  2. Đặt tùy chọn (ví dụ: tùy chọn xác định URL)
  3. Thực hiện với curl_exec()
  4. Đóng tay cầm cURL

Làm cách nào để tải xuống tệp từ một trang web từ xa bằng PHP cURL?

Nếu người dùng bao gồm chức năng CURLOPT_ FILE trong máy chủ, người dùng có thể tải xuống tệp từ xa từ mọi nơi

Ví dụ

Các cookie được sử dụng để xác định người dùng được xác thực trên trang web. Đối với điều này, PHP cURL cung cấp cho bạn một cơ chế để bạn có thể lưu cookie

Công cụ này giúp bạn tạo mã PHP dựa trên Lệnh Curl. Sao chép và dán lệnh Curl và tạo PHP

Bạn có thể làm gì với cURL to PHP Converter Online?

  • Curl to PHP là công cụ rất độc đáo để chuyển đổi lệnh curl thành yêu cầu http của PHP. Đầu vào được cung cấp bởi lệnh curl của người dùng để tạo Mã PHP
  • Công cụ này tiết kiệm thời gian của bạn và giúp tạo mã PHP một cách dễ dàng
  • Curl to PHP hoạt động tốt trên Windows, MAC, Linux, Chrome, Firefox, Edge và Safari

cURL là gì?

cURL là một công cụ dòng lệnh nguồn mở tải xuống các tệp từ web. Nó hỗ trợ nhiều giao thức, bao gồm HTTP, HTTPS, FTP, SFTP, TFTP, Gopher và các giao thức khác

cURL thường được sử dụng với tùy chọn -O để chuyển hướng đầu ra sang một tệp hoặc -O --output-document=file để buộc nó tạo đầu ra trong tên tệp đã cho. Tuy nhiên, nếu đầu vào được cung cấp dưới dạng FIFO hoặc đường dẫn có tên và cuộn tròn đọc dữ liệu từ đó dưới dạng luồng đầu vào thì tùy chọn này sẽ không có bất kỳ tác dụng nào

'Ứng dụng khách cho URL', được gọi ngắn gọn là cURL, ban đầu được phát âm bằng URL viết hoa để nhấn mạnh rằng nó xử lý các URL. Nó được phát âm là. "xem URL. "

cURL là một thư viện PHP và công cụ dòng lệnh (tương tự như wget) cho phép bạn gửi và nhận tệp qua HTTP và FTP. Bạn có thể sử dụng proxy, truyền dữ liệu qua kết nối SSL, đặt cookie và thậm chí nhận các tệp được bảo vệ bằng thông tin đăng nhập

Vai trò của cURL trong PHP

Đây là một mô-đun PHP cho phép các chương trình PHP sử dụng các chức năng cuộn tròn. Khi hỗ trợ cURL của PHP được bật, đầu ra của hàm phpinfo() sẽ bao gồm thông tin cURL. Trước khi bạn viết chương trình PHP cơ bản đầu tiên, bạn có thể kiểm tra lại nó

Chương trình sau đại học. Phát triển web đầy đủ ngăn xếp

hợp tác với Caltech CTME Đăng ký ngay

Cuộc gọi cURL tới PHP

Cú pháp cơ bản cho thông tin PHP

php_info();

?>

Công dụng của cURL trong PHP

  • cURL là một phần mở rộng PHP cho phép bạn sử dụng cú pháp URL để nhận và gửi dữ liệu
  • cURL giúp kết nối giữa các trang web và tên miền khác nhau trở nên đơn giản
  • Lấy một bản sao của tài liệu của một trang web.  
  • Gửi biểu mẫu tự động, xác thực và sử dụng cookie

Chức năng của cURL trong PHP

  • curl_close - Được sử dụng để đóng phiên của cURL
  • curl_error — Nó sẽ trả về chuỗi biểu thị lỗi cho phiên hiện tại cụ thể
  • curl_exec — Sau khi phiên cURL được tạo và tất cả các tùy chọn của phiên đã được đặt, chức năng sẽ được đặt tên. Mục đích duy nhất của nó là chạy phiên CURL được xác định trước (được cung cấp bởi ch)
  • curl_file_create - Để tạo CURLFile làm đối tượng
  • curl_getinfo - Nhận thông tin về một lần chuyển cụ thể
  • curl_init — Để khởi tạo phiên cURL cho URL
  • curl_multi_close — Đóng một bộ điều khiển cURL
  • curl_pause - Tạm dừng và bỏ tạm dừng kết nối phiên
  • curl_reset - Đặt lại tất cả các tùy chọn của trình xử lý phiên libcurl
  • curl setopt($ch, option, value) đặt tùy chọn phiên cURL được xác định bởi tham số ch. Giá trị chỉ định giá trị cho tùy chọn đã chỉ định và tùy chọn chỉ định tùy chọn nào sẽ đặt
  • Trả lại nội dung trang với curl setopt($ch, CURLOPT RETURNTRANSFER, 1). Nếu giá trị bằng 0, sẽ không có đầu ra nào được trả về
  • $url được truyền dưới dạng tham số cho curl setopt($ch, CURLOPT URL, $url). Đây là địa chỉ trang web cho máy chủ mục tiêu của bạn và URL internet mà bạn đang tìm kiếm
  • curl_version — Điều này có thể giúp lấy thông tin cho phiên bản cURL

Cách tải nội dung của trang web từ xa xuống tệp cục bộ bằng cURL trong PHP

<. LOẠI TÀI LIỆU html>

$url_name = "https. //Google. com";

$ch_session = curl_init();

curl_setopt($ch_session, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch_session, CURLOPT_URL, $url);

$result_url = curl_exec($ch_session);

tiếng vang $result_url;

?>

Trong ví dụ trên, chúng tôi đang cố gắng hiển thị thông tin URL được gán cho google. com Tên URL này được gán với biến $url_name. Phiên đã bắt đầu với biến $ch_session

đầu ra

Cuộc gọi cURL tới PHP

Trong ví dụ trên, chúng tôi đang cố gắng xem trang chủ của một trang web Google. Phiên đã được chỉ định với curl_init(). Phương thức này sẽ hiển thị nội dung của một trang web được gán vào một phương thức curl_setopt() cụ thể. Nó sẽ được lưu dưới dạng tệp html để truy cập từ xa

Khóa học mới. Phát triển Full Stack cho người mới bắt đầu

Tìm hiểu Git Command, Angular, NodeJS, Maven và hơn thế nữa Đăng ký ngay

Cuộc gọi cURL tới PHP

Để tải xuống tệp từ trang web từ xa bằng cURL trong PHP

Nếu tùy chọn CURLOPT_ FILE được kích hoạt, một tệp từ xa có thể được tải xuống máy chủ của chúng tôi. Ví dụ: đoạn mã sau tải xuống "Microsoft new launch" từ trang web của công ty Microsoft và lưu nó vào máy chủ của chúng tôi dưới dạng microsoft_new_launch. html

Mã nguồn

<. LOẠI TÀI LIỆU html>

$url_name = "https. //hỗ trợ. Microsoft. com/en-in/có gì mới. html";

$file_name = __DIR__. DIRECTORY_SEPARATOR. "Microsot_new_launch. html";

$handle_session = curl_init();

$fileHandle_name = fopen($file, "w");

curl_setopt_array($handle_session,

mảng(

CURLOPT_URL       => $url_name,

CURLOPT_FILE => $fileHandle_name,

)

);

$data_result = curl_exec($handle_session);

curl_close($handle_session);

fclose($fileHandle_name);

?>

Trong mã nguồn ở trên, url_name chẳng là gì ngoài vị trí tài nguyên ban đầu của trang web. Phiên xử lý sẽ quản lý chi tiết phiên của vị trí trang web hiện tại

Chúng tôi sử dụng lệnh curl_getinfo để biết thêm thông tin về yêu cầu. Lệnh này cho phép chúng tôi nhận thông tin kỹ thuật quan trọng về phản hồi, chẳng hạn như mã trạng thái (200 để thành công) và kích thước của tệp đã tải xuống

Mã nguồn cho trang phản hồi

/*

* vim. ts=4 sw=4 fdm=điểm đánh dấu noet tw=78

*/

class curlDownloader

{

riêng $remoteFileName = NULL;

riêng tư $ch = NULL;

riêng tư $headers = mảng();

phản hồi $ riêng tư = NULL;

riêng tư $fp = NULL;

riêng tư $debug = FALSE;

riêng $fileSize = 0;

const DEFAULT_FNAME = 'điều khiển từ xa. ngoài';

chức năng công khai __construct($url)

{

$this->init($url);

}

chức năng công khai toggleDebug()

{

$this->debug =. $this->debug;

}

hàm công khai init($url)

{

nếu(. $url )

ném UnlimitedArgumentException mới ("Cần một URL");

$this->ch = curl_init();

curl_setopt($this->ch, CURLOPT_URL, $url);

curl_setopt($this->ch, CURLOPT_HEADERFUNCTION,

mảng($this, 'headerCallback'));

curl_setopt($this->ch, CURLOPT_WRITEFUNCTION,

mảng($this, 'bodyCallback'));

}

chức năng công khai headerCallback($ch, $string)

{

$len = strlen($string);

nếu(. strstr($string, '. ') )

{

$this->response = trim($string);

trả lại $len;

}

danh sách($name, $value) = phát nổ('. ', $chuỗi, 2);

if( strcasecmp($name, 'Bố trí nội dung') == 0 )

{

$parts = phát nổ(';', $value);

nếu( đếm($phần) > 1)

{

foreach($parts AS $crumb)

{

nếu( strstr($crumb, '=') )

{

danh sách($pname, $pval) = phát nổ('=', $crumb);

$pname = trim($pname);

if( strcasecmp($pname, 'filename') == 0 )

{

// Sử dụng tên cơ sở để ngăn chặn việc chèn đường dẫn

// trong tiêu đề độc hại

$this->remoteFileName = basename(

$this->unquote(trim($pval)));

$this->fp = fopen($this->remoteFileName, 'wb');

}

}

}

}

}

$this->headers[$name] = trim($value);

trả lại $len;

}

hàm công khai bodyCallback($ch, $string)

{

nếu(. $this->fp )

{

trigger_error("Không nhận được tên tệp từ xa, đang thử mặc định",

E_USER_WARNING);

$this->remoteFileName = self. DEFAULT_FNAME;

$this->fp = fopen($this->remoteFileName, 'wb');

nếu(. $this->fp )

ném new RuntimeException("Không thể mở tên tệp mặc định");

}

$len = fwrite($this->fp, $string);

$this->fileSize += $len;

trả lại $len;

}

chức năng công tải xuống()

{

$retval = curl_exec($this->ch);

nếu( $this->debug )

var_dump($this->headers);

fclose($this->fp);

curl_close($this->ch);

trả về $this->fileSize;

}

chức năng công khai getFileName() { return $this->remoteFileName;

chức năng riêng unquote($string)

{

trả về str_replace(mảng("'", '"'), '', $string);

}

}

$dl = trình tải xuống curl mới (

'https. //www. Google. com/url?sa=i&url=https%3A%2F%2Fwww. pexels. com%2Fsearch%2Ffree%2520download%2F&psig=AOvVaw3lIh07E0ZIZyNjqNl-JNSd&ust=1638024513705000&source=images&cd=vfe&ved=0CAsQjRxqFwoTCKDNtfuitvQCFQAAAAAdAAAAABAD'

);

$size = $dl->download();

printf("Đã tải %u byte xuống %s\n", $size, $dl->getFileName());

?>

đầu ra

Cuộc gọi cURL tới PHP

Khóa học Full Stack Web Developer

Để trở thành chuyên gia về MEAN Stack Xem khóa học

Cuộc gọi cURL tới PHP

Gửi biểu mẫu bằng cURL trong PHP

Chúng ta đã thấy cách sử dụng phương thức GET của HTTP cho đến giai đoạn này (thường được sử dụng để xem và tải xuống nội dung). Để gửi biểu mẫu, cURL cũng có thể sử dụng quy trình HTTP POST

Bây giờ hãy xem cách gửi biểu mẫu bằng cURL. Để làm điều này, chúng ta cần tạo hai tệp.  

Trong ví dụ này, chúng tôi sẽ tạo hai tệp sau - chỉ mục. php, biểu mẫu. php

  • Bao gồm tập lệnh cURL trong chỉ mục. tập tin php
  • Chi tiết thiết kế mẫu được đính kèm theo mẫu. tập tin php

Trên thực tế, hình thức. php sẽ được đặt trên một máy chủ từ xa (mặc dù, ví dụ, cả hai tệp có thể được đặt trên cùng một máy chủ). Ngoài ra, chúng tôi sẽ sử dụng biểu mẫu có ba trường. first_Name, last_Name và gửi

Mã thiết kế biểu mẫu là

$handle = curl_init();

$url = "https. // localhost/curl/theForm. php";

$postData = mảng(

'firstName' => 'Quý bà',

'Họ'  => 'Gaga',

'gửi'    => 'ok'

);

curl_setopt_array($handle,

mảng(

CURLOPT_URL => $url,

// Cho phép phản hồi bài đăng

CURLOPT_POST   => đúng,

CURLOPT_POSTFIELDS => $postData,

CURLOPT_RETURNTRANSFER => đúng,

)

);

$data = curl_exec($handle);

curl_close($handle);

tiếng vang $ dữ liệu;

?>

Với sự trợ giúp của biểu mẫu được đề cập ở trên, chúng tôi có thể nhận được thông tin chi tiết về first_name và last_name của người sử dụng biểu mẫu

Các chi tiết thu được sau đó được chuyển đến biểu mẫu phản hồi PHP

Cuộc gọi cURL tới PHP

đầu ra

Cuộc gọi cURL tới PHP

Để thực hiện xác thực HTTP cơ bản với cURL trong PHP

Để xác thực bằng cURL, ba tùy chọn sau cần được đặt

  • CURLOPT_HTTPAUTH
  • CURLOPT_USRPWD– Thông qua đó chúng tôi xác định tên người dùng và mật khẩu
  • CURLOPT_RETURNTRANSFER

Mã nguồn

curl_setopt_array($handle_session,

mảng(

CURLOPT_URL => $url_,

CURLOPT_HTTPAUTH => CURLAUTH_ANY,

CURLOPT_USRPWD  => "$user_name. $p_word",

CURLOPT_RETURNTRANSFER   => đúng,

)

);

?>

đầu ra

Cuộc gọi cURL tới PHP

khóa học miễn phí. Nguyên tắc cơ bản về lập trình

Tìm hiểu kiến ​​thức cơ bản về lập trình Đăng ký ngay

Cuộc gọi cURL tới PHP

Cookie được sử dụng để nhận ra khách du lịch quay lại và người dùng được xác thực trên trang web. Để làm điều này, cURL bao gồm một phương pháp lưu cookie

Hai lựa chọn chính để xử lý cookie là

CURLOPT COOKIEJAR– Xác định tệp phải được sử dụng để ghi cookie

CURLOPT COOKIEFILE– Biến này chỉ định tệp mà cookie sẽ được đọc từ đó

Mã nguồn

$handle_session = curl_init();

$url_name = "https. //hỗ trợ. Microsoft. com/en-in/whats-new";

$file_name = __DIR__. DIRECTORY_SEPARATOR. "bánh quy. txt";

curl_setopt_array($handle_session,

mảng(

CURLOPT_URL => $url_name,

CURLOPT_COOKIEFILE => $file_name,

CURLOPT_COOKIEJAR  => $file_name,

CURLOPT_RETURNTRANSFER => đúng,

)

);

$data = curl_exec($handle);

curl_close($handle);

?>

đầu ra

Cuộc gọi cURL tới PHP

Nâng cao sự nghiệp của bạn với tư cách là nhà phát triển MEAN stack với Nhà phát triển Web Full Stack - Chương trình Thạc sĩ MEAN Stack. đăng ký ngay bây giờ

Phần kết luận

Sử dụng tiện ích mở rộng cURL của PHP giúp chúng tôi giao tiếp với các trang web khác một cách nhanh chóng và dễ dàng, đặc biệt là các API do bên thứ ba cung cấp. Trong hướng dẫn tiếp theo, chúng ta sẽ tìm hiểu cách yêu cầu thông tin cá nhân thay mặt cho người dùng đăng nhập vào trang web của chúng ta bằng tài khoản GitHub của họ. Điều này sẽ đạt được với sự trợ giúp của cURL và API Github.  

Trong bài viết này, bạn đã học về cURL với cú pháp và ví dụ. Để có chuyên môn về lập trình C và để nâng cao hơn nữa triển vọng nghề nghiệp của bạn và trở thành một chuyên gia và một nhà công nghệ toàn diện, bạn có thể đăng ký chương trình Phát triển Web Full Stack của Simplilearn. Đối với người học, Simplilearn đã thực hiện tuyển chọn đặc biệt các khóa học miễn phí. Tham gia Simplilearn để có các khóa học miễn phí về SkillUp và cách mạng hóa nghề nghiệp của bạn với các chứng chỉ, chuyên môn và hàng chục khóa học khác.  

Có bất kỳ câu hỏi cho chúng tôi?

Tìm Chương trình sau đại học của chúng tôi trong Chương trình đào tạo trực tuyến về phát triển web Full Stack tại các thành phố hàng đầu

NameDatePlacePost Chương trình sau đại học về Phát triển Web Full Stack Nhóm bắt đầu vào ngày 25 tháng 1 năm 2023,
Đợt cuối tuầnChi tiết CityView của bạnChương trình sau đại học về Phát triển web Full Stack, SingaporeCohort bắt đầu vào ngày 14 tháng 2 năm 2023,
Weekend batchSingaporeView DetailsPost Graduate Program in Full Stack Web DevelopmentCohort starts on 1st Mar 2023,
Weekend batchYour CityView Details

Giới thiệu về tác giả

Cuộc gọi cURL tới PHP
Ravikiran AS

Ravikiran A S làm việc với Simplilearn với tư cách là Nhà phân tích nghiên cứu. Anh ấy là một người đam mê nhiệt tình, luôn săn lùng những công nghệ mới nhất. Anh ấy thành thạo Ngôn ngữ lập trình Java, Dữ liệu lớn và các Khung dữ liệu lớn mạnh mẽ như Apache Hadoop và Apache Spark

Làm cách nào để sử dụng cuộc gọi cURL trong php?

php. // tạo tài nguyên cURL. $ch = curl_init() ; . .
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
$res = curl_exec($ch);
tiếng vang $res;

Làm cách nào để lấy URL cURL trong php?

curl_setopt($ch, CURLOPT_URL, $url) Nó truyền URL dưới dạng tham số, url đích này trả về mà bạn muốn lấy từ internet. curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE) Nó được đặt thành TRUE để trả về chuyển dưới dạng một chuỗi giá trị trả về của curl_exec() thay vì xuất trực tiếp.