PHP Chạy URL bằng cách sử dụng cURL

PHP. Xoăn

Cải thiện bài viết

Lưu bài viết

Thích bài viết

  • Độ khó. Khó
  • Cập nhật lần cuối. 04 tháng 10 năm 2021

  • Đọc
  • Bàn luận
  • khóa học
  • Luyện tập
  • Băng hình
  • Cải thiện bài viết

    Lưu bài viết

    CURL là viết tắt của 'Ứng dụng khách dành cho URL', ban đầu với URL được đánh vần bằng chữ hoa để làm rõ rằng nó xử lý các URL. Nó được phát âm là 'xem URL'. Dự án cURL có hai sản phẩm libcurl và curl.
     

    • thư viện. Thư viện chuyển URL phía máy khách miễn phí và dễ sử dụng, hỗ trợ FTP, TPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE và LDAP. libcurl hỗ trợ chứng chỉ TTPS, HTTP POST, HTTP PUT, tải lên FTP, kerberos, tải lên dựa trên HTTP, proxy, cookie, xác thực người dùng và mật khẩu, tiếp tục truyền tệp, tạo đường hầm proxy HTTP và nhiều tính năng khác. libcurl miễn phí, an toàn theo luồng, tương thích với IPv6, giàu tính năng, được hỗ trợ tốt và nhanh chóng
    • Xoăn. Công cụ dòng lệnh để nhận hoặc gửi tệp bằng cú pháp URL. Vì curl sử dụng libcurl nên nó hỗ trợ nhiều giao thức nội bộ phổ biến, hiện bao gồm HTTP, HTTPS, FTP, FTPS, GOPHER, TELNET, DICT và FILE

    PHP/cURL là gì? . hỗ trợ cURL được bật trong PHP, hàm phpinfo() sẽ hiển thị ở đầu ra của nó. Bạn được yêu cầu kiểm tra nó trước khi viết chương trình đơn giản đầu tiên của bạn bằng PHP.
    The module for PHP that makes it possible for PHP programs to access curl functions within PHP. cURL support is enabled in PHP, the phpinfo() function will display in its output. You are requested to check it before writing your first simple program in PHP. 
     

    php




     

    phpinfo();

     

    ?>

    Sử dụng đơn giản. Yêu cầu/thao tác đơn giản và phổ biến nhất được thực hiện bằng HTTP là lấy một URL. Bản thân URL có thể đề cập đến một trang web, hình ảnh hoặc tệp. Máy khách đưa ra yêu cầu GET tới máy chủ và nhận tài liệu mà nó yêu cầu.
    Một số hàm cURL cơ bản.
     

    • Hàm curl_init() sẽ khởi tạo một phiên mới và trả về một điều khiển cURL
    • hàm curl_exec($ch) nên được gọi sau khi khởi tạo phiên cURL và tất cả các tùy chọn cho phiên được đặt. Mục đích của nó chỉ đơn giản là thực thi phiên CURL được xác định trước (được cung cấp bởi ch)
    • curl_setopt($ch, option, value) đặt tùy chọn cho phiên cURL được xác định bởi tham số ch. Tùy chọn chỉ định tùy chọn nào sẽ được đặt và giá trị chỉ định giá trị cho tùy chọn đã cho
    • curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1) trả lại nội dung trang. Nếu đặt 0 thì sẽ không có đầu ra nào được trả về
    • curl_setopt($ch, CURLOPT_URL, $url) chuyển URL làm tham số. Đây là địa chỉ trang web máy chủ mục tiêu của bạn. Đây là URL bạn muốn lấy từ internet
    • curl_exec($ch) lấy URL và chuyển nó vào biến để hiển thị đầu ra
    • curl_close($ch) đóng tài nguyên cuộn tròn và giải phóng tài nguyên hệ thống

    Ví dụ.
     

    php




     

    // From URL to get webpage contents.

    $url ="https://www.geeksforgeeks.org/";

     

    // Initialize a CURL session.

    phpinfo();0 phpinfo();1

     

    phpinfo();2

    phpinfo();3____10phpinfo();5

     

    phpinfo();6

    phpinfo();3phpinfo();0phpinfo();9$url?>1

     

    ?>2 ?>3____10____21

     

    ?>6 ?>2;

     

    ?>

    Đầu ra.
     

    PHP Chạy URL bằng cách sử dụng cURL

    Tham khảo. http. //php. net/manual/en/book. Xoăn. php
     


    Ghi chú cá nhân của tôi arrow_drop_up

    Tiết kiệm

    Vui lòng Đăng nhập để nhận xét.

    'Ứ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

    PHP Chạy URL bằng cách sử dụng cURL

    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

    PHP Chạy URL bằng cách sử dụng cURL

    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

    PHP Chạy URL bằng cách sử dụng cURL

    Để 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. //ủng hộ. 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

    PHP Chạy URL bằng cách sử dụng cURL

    Khóa học Full Stack Web Developer

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

    PHP Chạy URL bằng cách sử dụng cURL

    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 viết

    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

    PHP Chạy URL bằng cách sử dụng cURL

    đầu ra

    PHP Chạy URL bằng cách sử dụng cURL

    Để 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

    PHP Chạy URL bằng cách sử dụng cURL

    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

    PHP Chạy URL bằng cách sử dụng cURL

    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. //ủng hộ. 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

    PHP Chạy URL bằng cách sử dụng cURL

    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ó kiến ​​thức chuyên môn về lập trình C, đồng thời 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 đầy đủ ngăn xếp Nhóm bắt đầu vào ngày 19 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 ngăn xếp đầy đủ, SingaporeCohort bắt đầu vào ngày 2 tháng 2 năm 2023,
    Weekend batchSingaporeView DetailsPost Graduate Program in Full Stack Web DevelopmentCohort starts on 16th Feb 2023,
    Weekend batchYour CityView Details

    Thông tin về các Tác giả

    PHP Chạy URL bằng cách sử dụng cURL
    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 để truy cập một URL trong PHP?

    Làm cách nào để lấy URL của trang hiện tại bằng PHP? .
    if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'bật')
    // Nối host(tên miền, ip) vào URL
    $url. = $_SERVER['HTTP_HOST'];
    // Nối vị trí tài nguyên được yêu cầu vào URL
    $url. = $_SERVER['REQUEST_URI'];
    tiếng vang $url;

    Làm cách nào để sử dụng cURL cho API PHP?

    // tạo & khởi tạo một phiên curl $curl = curl_init(); // đặt url của chúng ta bằng curl_setopt() curl_setopt($ . thí dụ. com"); // trả lại quá trình truyền dưới dạng một chuỗi, cũng với setopt() curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // curl_exec() thực thi phiên curl đã bắt đầu // $output chứa.

    Làm cách nào để gọi một URL và nhận phản hồi trong PHP?

    php $url = 'http. //tên miền/đường dẫn điểm cuối'; . html", "w"); $curl = curl_init($url); curl_setopt($curl, CURLOPT_FILE, $file); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HEADER, false); curl_exec