Hàm file_get_contents() trong PHP

21/07/2020 - lượt xem
Chia sẻ
 
Rate this post

Định Nghĩa.

Hàm file_get_contents() sẽ đọc nội dung của file thành một chuỗi.

Cú pháp.

Cú pháp:

file_get_contents ( string $filename [, bool $use_include_path = FALSE 
[, resource $context [, int $offset = 0 [, int $maxlen ]]]] ) : string

Trong đó.

  • $filename là đường dẫn tới file cần đọc.
  • $use_include_path là tham số, quy định có sử dụng hằng số FILE_USE_INCLUDE_PATH làm môi trường tìm kiếm file hay không. Từ PHP 5.0.0 đến nay, $use_include_path sẽ mang hai giá trị FILE_USE_INCLUDE_PATH  hoặc NULL.
  • $context  là kết quả trả về của hàm stream_context_create(), nếu bạn không cần sử dụng ngữ cảnh tùy chỉnh có thể bỏ qua tham số này.
  • $offset là vị trí bắt đầu đọc, nếu mang giá trị âm, việc đọc sẽ bắt đầu từ cuối file. nếu không được truyền vào, việc đọc sẽ bắt đầu từ đầu file.
  • $maxlen là chiều dài tối đa mà hàm sẽ đọc. Nếu không truyền hàm sẽ đọc đến cuối file.

Giá trị trả về.

  • Hàm sẽ trả về một chuỗi là dữ liệu đọc được từ file. Nếu không thành công hàm trả về false.
Lưu ý: 
Hàm này có thể trả về Boolean FALSE, nhưng cũng có thể trả về giá trị không Boolean ước tính cho FALSE.
Vui lòng đọc phần trên 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.

Errors/Exceptions.

  • Một lỗi mức E_WARNING được tạo nếu không thể tìm thấy filename, maxlength nhỏ hơn 0 hoặc nếu tìm kiếm  offset chỉ định trong luồng không thành công.

Ví dụ.

ví dụ 1.

code:

<?php
$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
?>

Ví dụ 2 Tìm kiếm trong include_path.

<?php
// If strict types are enabled i.e. declare(strict_types=1);
$file = file_get_contents('./people.txt', true);
// Otherwise
$file = file_get_contents('./people.txt', FILE_USE_INCLUDE_PATH);
?>

Ví dụ 3 Đọc một phần của tệp.

<?php
// Read 14 characters starting from the 21st character
$section = file_get_contents('./people.txt', FALSE, NULL, 20, 14);
var_dump($section);
?>
// Kết quả string(14):"ll sdfdfac"

Ví dụ 4 sử dụng stream contexts.

<?php
// Create a stream
$opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar\r\n"
  )
);

$context = stream_context_create($opts);

// Open the file using the HTTP headers set above
$file = file_get_contents('http://www.example.com/', false, $context);
?>

Sự thay đổi qua các phiên bản.

  • PHP 7.1.0 thì hỗ trợ cho các offsets âm.
  • PHP 5.1.0 đã thêm các tham số offset và maxlen.

Ghi chú.

  • Hàm này là kiểu binary-safe.(Nhị phân).
  • Một URL có thể được sử dụng làm tên tệp với chức năng này nếu trình bao bọc fopen đã được bật. Xem fopen () để biết thêm chi tiết về cách chỉ định tên tệp. Xem các Giao thức và Trình bao bọc được Hỗ trợ để biết các liên kết đến thông tin về khả năng của các trình bao bọc khác nhau, ghi chú về cách sử dụng và thông tin về bất kỳ biến được xác định trước nào mà chúng có thể cung cấp
  • Cảnh báo: Khi sử dụng SSL, Microsoft IIS sẽ vi phạm giao thức bằng cách đóng kết nối mà không gửi chỉ báo close_notify. PHP sẽ báo cáo đây là “SSL: Lỗi giao thức nghiêm trọng” khi bạn đến cuối dữ liệu. Để giải quyết vấn đề này, giá trị của error_Vporting nên được hạ xuống mức không bao gồm các cảnh báo. PHP có thể phát hiện phần mềm máy chủ IIS bị lỗi khi bạn mở luồng bằng cách sử dụng trình bao bọc https: // và sẽ chặn cảnh báo. Khi sử dụng fsockopen () để tạo ổ cắm ssl: //, nhà phát triển có trách nhiệm phát hiện và triệt tiêu cảnh báo này.

Hàm liên quan.

Thông tin thêm.

  • Cách đặt thời gian chờ đúng cách mà không làm hỏng các giá trị int
    <?php
    $ctx = stream_context_create(array(
        'http' => array(
            'timeout' => 1
            )
        )
    );
    file_get_contents("http://example.com/", 0, $ctx);
    ?>
  • file_get_contents có thể thực hiện POST.
    $opts = array('http' =>
      array(
        'method'  => 'POST',
        'header'  => "Content-Type: text/xml\r\n".
          "Authorization: Basic ".base64_encode("$https_user:$https_password")."\r\n",
        'content' => $body,
        'timeout' => 60
      )
    );
                           
    $context  = stream_context_create($opts);
    $url = 'https://'.$https_server;
    $result = file_get_contents($url, false, $context, -1, 40000);
Các bạn có thể xem chi tiết hơn trên php.net.Hi vọng với bài viết này, bạn đã hiểu rõ ứng dụng của hàm file_get_contents() 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