Hàm curl_exec() trong PHP dùng để làm gì?

20/09/2020 - lượt xem
Chia sẻ
 
Rate this post

Định nghĩa.

curl_exec() – Thực hiện một phiên cURL

Hàm này sẽ được gọi sau khi khởi tạo một phiên cURL và tất cả các tùy chọn cho phiên đã được thiết lập.

Cú pháp.

Cú pháp:

curl_exec ( resource $ch ) : mixed

Trong đó:

$ch Một xử lý cURL được trả về bởi curl_init ();

Giá trị trả về:

Trả về TRUE khi thành công hoặc FALSE nếu thất bại. Tuy nhiên, nếu tùy chọn CURLOPT_RETURNTRANSFER được đặt, nó sẽ trả về kết quả là thành công, FALSE nếu không thành công.

Lưu ý

  • Cảnh báo Hàm này có thể trả về Boolean FALSE, nhưng cũng có thể trả về giá trị không phải Boolean được đánh giá là FALSE. Vui lòng đọc phần về Booleans để biết thêm thông tin. Sử dụng toán tử === để kiểm tra giá trị trả về của hàm này.
  • Ghi chú: Lưu ý rằng các mã trạng thái phản hồi chỉ ra lỗi (chẳng hạn như 404 Không tìm thấy) không được coi là lỗi. curl_getinfo () có thể được sử dụng để kiểm tra những điều này.

Ví dụ.

code:

<?php
// create a new cURL resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// grab URL and pass it to the browser
curl_exec($ch);

// close cURL resource, and free up system resources
curl_close($ch);
?>

Hàm liên quan.

  • curl_multi_exec() – Chạy các kết nối phụ của trình điều khiển cURL hiện tại

Thông tin thêm.

  • Đề phòng bất kỳ ai đang tìm kiếm một vài hàm đơn giản [để giúp tự động hóa các quy trình cURL cho các truy vấn POST và GET], tôi nghĩ tôi sẽ đăng những hàm này.

    /**
    * Gửi yêu cầu POST bằng cURL
    * @param string $url to request
    * @param array $post values to send
    * @param array $options for cURL
    * @return string
    */
    function curl_post($url, array $post = NULL, array $options = array())
    {
        $defaults = array(
            CURLOPT_POST => 1,
            CURLOPT_HEADER => 0,
            CURLOPT_URL => $url,
            CURLOPT_FRESH_CONNECT => 1,
            CURLOPT_RETURNTRANSFER => 1,
            CURLOPT_FORBID_REUSE => 1,
            CURLOPT_TIMEOUT => 4,
            CURLOPT_POSTFIELDS => http_build_query($post)
        );
    
        $ch = curl_init();
        curl_setopt_array($ch, ($options + $defaults));
        if( ! $result = curl_exec($ch))
        {
            trigger_error(curl_error($ch));
        }
        curl_close($ch);
        return $result;
    }
    
    /**
    * Send a GET requst using cURL
    * @param string $url to request
    * @param array $get values to send
    * @param array $options for cURL
    * @return string
    */
    function curl_get($url, array $get = NULL, array $options = array())
    {   
        $defaults = array(
            CURLOPT_URL => $url. (strpos($url, '?') === FALSE ? '?' : ''). http_build_query($get),
            CURLOPT_HEADER => 0,
            CURLOPT_RETURNTRANSFER => TRUE,
            CURLOPT_TIMEOUT => 4
        );
       
        $ch = curl_init();
        curl_setopt_array($ch, ($options + $defaults));
        if( ! $result = curl_exec($ch))
        {
            trigger_error(curl_error($ch));
        }
        curl_close($ch);
        return $result;
    }
    ?>
  • Hãy cẩn thận khi sử dụng curl_exec () và tùy chọn CURLOPT_RETURNTRANSFER. Theo hướng dẫn sử dụng và các loại tài liệu: Đặt CURLOPT_RETURNTRANSFER thành TRUE để trả lại quá trình truyền dưới dạng một chuỗi giá trị trả về của curl_exec () thay vì xuất ra trực tiếp.
    Khi truy xuất một tài liệu không có nội dung (tức là tệp 0 byte), curl_exec () sẽ trả về bool (true), không phải là một chuỗi trống. Tôi không thấy bất kỳ đề cập nào về điều này trong sách hướng dẫn.
    Mã ví dụ để giải thích điều trên:

    <?php
    
        // fictional URL to an existing file with no data in it (ie. 0 byte file)
        $url = 'http://www.example.com/empty_file.txt';
    
        $curl = curl_init();
       
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_HEADER, false);
    
        // execute and return string (this should be an empty string '')
        $str = curl_exec($curl);
    
        curl_close($curl);
    
        // the value of $str is actually bool(true), not empty string ''
        var_dump($str);
    
    ?>

Các bạn bấm đây  php.net.  để xem chi tiết hơn

Hi vọng với bài viết này, bạn đã hiểu rõ ứng dụng của hàm curl_error() trong PHP. Nếu bạn thấy bài viết hay và có ý nghĩa hãy like và chia sẻ bài viết này để mọi người cùng nhau học tập nhé. Cảm ơn các bạn đã ghé thăm codetutam.com

    Liên hệ với chúng tôi

    Để lại thông tin để nhận được các bài viết khác

    Rate this post

    Xem thêm nhiều bài tin mới nhất về Kiến thức

    Xem thêm