Hàm parse_ini_file() trong PHP được sử dụng để đọc và phân tích một file cấu hình INI và trả về một mảng chứa các giá trị cấu hình. File cấu hình INI được sử dụng để lưu trữ cài đặt cấu hình cho ứng dụng PHP hoặc các ứng dụng khác. File INI là một định dạng cấu hình đơn giản, dễ sử dụng và linh hoạt, thích hợp cho việc quản lý cấu hình của ứng dụng, nó giúp tách biệt dữ liệu cấu hình và mã nguồn, làm cho việc cấu hình ứng dụng trở nên dễ dàng hơn và phù hợp với nhiều ngôn ngữ lập trình.

Bạn muốn trở thành một nhà lập trình PHP chuyên nghiệp? Hãy bắt đầu với cuốn Ebook hữu ích từ Stringee! 

>>> ĐĂNG KÝ NHẬN EBOOK PHP MIỄN PHÍ TẠI ĐÂY:  

1. Cú pháp của hàm parse_ini_file trong PHP

Hàm parse_ini_file sử dụng như sau:

parse_ini_file(file, process_sections, scanner_mode)

Xem thêm bài viết về PHP:

- Tìm hiểu về hàm preg_match_all trong PHP

- Xử lý hàm date (ngày tháng) trong PHP

- Giới hạn ký tự hiển thị và chức năng read more trong PHP

Dưới đây là một ví dụ cụ thể về cách sử dụng hàm parse_ini_file():

<?php
// Đọc tệp cấu hình example.ini
$config = parse_ini_file('example.ini');
// Truy cập các giá trị cấu hình từ tệp INI
$databaseHost = $config['database_host'];
$databaseUser = $config['database_user'];
$databasePassword = $config['database_password'];
$databaseName = $config['database_name'];
// Sử dụng các giá trị cấu hình trong mã PHP
$conn = new mysqli($databaseHost, $databaseUser, $databasePassword, $databaseName);
if ($conn->connect_error) {
    die("Kết nối đến cơ sở dữ liệu thất bại: " . $conn->connect_error);
}
echo "Kết nối đến cơ sở dữ liệu thành công!";
?>

Trong ví dụ này, chúng ta đã sử dụng hàm parse_ini_file() để đọc tệp cấu hình example.ini, sau đó trích xuất các giá trị cấu hình từ tệp INI và sử dụng chúng để thiết lập kết nối đến cơ sở dữ liệu MySQL.

2. Giá trị tham số trong hàm parse_ini_file

parse_ini_file(file, process_sections, scanner_mode)

2.1. Biến file

Đây là đường dẫn đến tệp cấu hình INI mà người dùng cần đọc.

2.2. Biến process_sections

Biến này không bắt buộc, là một biến boolean (mặc định là false). Nếu được đặt thành true, hàm sẽ duyệt qua các phần của tệp cấu hình INI và trả về một mảng đa chiều với các phần được phân tách. Nếu là false, hàm chỉ trả về một mảng 1 chiều với các cặp khóa/giá trị.

2.3. Biến scanner_mode

Biến này cũng không bắt buộc, nó là một hằng số định nghĩa chế độ quét tệp (mặc định là INI_SCANNER_NORMAL). Có hai chế độ quét có sẵn:

  • INI_SCANNER_NORMAL: Quét tệp INI theo cách thông thường và hỗ trợ các tính năng INI như biến ommiting và chuỗi chứa ký tự đặc biệt.
  • INI_SCANNER_RAW: Quét tệp INI một cách nguyên bản, không thực hiện bất kỳ xử lý nào và trả về kết quả không biến đổi.

3. Một số lưu ý và sự thay đổi ở các phiên bản PHP

Hàm này có thể được sử dụng để đọc các tệp cấu hình của riêng bạn và không liên quan gì đến tệp php.ini.

Không được sử dụng các từ dành riêng sau đây làm khóa cho tệp ini: null, yes, no, true, false, on, off. Ngoài ra, không được sử dụng các ký tự dành riêng sau trong khóa: {}|&~!()^".

Giá trị trả về: Một mảng thành công, FALSE nếu thất bại

PHP 7.0: Dấu thăng (#) không còn được coi là nhận xét

PHP 5.6.1: Đã thêm chế độ INI_SCANNER_TYPED

PHP 5.3: Đã thêm tham số scanner_mode tùy chọn

Định dạng tệp INI: Tệp INI phải tuân thủ định dạng INI, với các phần tử cấu hình được xác định bằng cặp khóa/giá trị, ví dụ:

database_host = localhost
database_user = root
database_password = mypassword
database_name = mydatabase

Xử lý lỗi: Hãy luôn kiểm tra kết quả trả về của hàm parse_ini_file(). Nếu tệp không tồn tại hoặc có lỗi cú pháp, hàm này sẽ trả về false.

Bảo mật: Không nên lưu mật khẩu hoặc thông tin nhạy cảm khác trong tệp cấu hình INI mà có thể truy cập trực tiếp từ trình duyệt hoặc từ xa. Cần đảm bảo rằng tệp INI luôn ở ngoài tầm tiếp cận của người dùng.

4. Ví dụ sử dụng hàm parse_ini_file

  • Đầu tiên chúng ta tạo một file có tên test.ini như sau:
[names]
me = Robert
you = Peter
[urls]
first = "http://www.stringee.com"
second = "https://www.stringeex.com"
  • Sau đó chúng ta tạo file test.php:
<?php
print_r(parse_ini_file("test.ini"));
?>

Hàm print_r dùng để in ra kết quả.

Đầu ra của chúng ta sẽ có như sau:

Array (
  [me] => Robert
  [you] => Peter
  [first] => http://www.stringee.com
  [second] => https://www.stringeex.com
)

5. So sánh file INI và ENV

File INI và biến môi trường (environment variables - env) là hai cách để quản lý cấu hình và thông tin liên quan đến môi trường cho ứng dụng. Dưới đây là một số sự so sánh giữa chúng:

Cú pháp và định dạng:

  • File INI: Sử dụng định dạng INI với các cặp khóa/giá trị, thường có dấu '=' hoặc ':' để phân tách khóa và giá trị. Đây là định dạng dễ đọc và viết bởi con người. 
  • ENV: Sử dụng biến môi trường với cặp tên biến và giá trị, thường là các chuỗi văn bản. Đây không phải là một định dạng tệp mà là một tập hợp các biến được lưu trữ trong hệ thống môi trường. 

Tích hợp và hỗ trợ:

  • File INI: Sử dụng trong nhiều ngôn ngữ lập trình và có các thư viện hoặc hàm sẵn sàng để đọc và ghi dữ liệu từ các tệp INI. Thường được sử dụng trong PHP, Python và nhiều ngôn ngữ khác. 
  • ENV: Hệ thống môi trường cung cấp biến môi trường cho ứng dụng và bạn có thể truy cập chúng từ các ngôn ngữ lập trình khác nhau bằng cách sử dụng các hàm hoặc thư viện hệ thống. 

Tính bảo mật:

  • File INI: Dữ liệu trong tệp INI thường được lưu trữ dưới dạng văn bản thô và không được mã hóa mặc định. Do đó, nó không phải là một nơi tốt để lưu trữ thông tin nhạy cảm như mật khẩu. 
  • ENV: Biến môi trường có thể chứa thông tin nhạy cảm và bạn cần có biện pháp bảo mật để đảm bảo rằng dữ liệu này không bị truy cập trái phép. 

Quản lý và cập nhật:

  • File INI: Dễ dàng quản lý và cập nhật bằng cách chỉnh sửa tệp INI thủ công hoặc thông qua mã lập trình. 
  • ENV: Biến môi trường thường được quản lý bằng các công cụ hệ thống và có thể yêu cầu quyền quản trị hệ thống để thay đổi. 

Tính di động:

  • File INI: Tệp INI có thể di động và dễ dàng sao lưu hoặc chuyển đổi giữa môi trường khác nhau. 
  • ENV: Biến môi trường phụ thuộc vào hệ thống môi trường cụ thể và có thể không di động giữa các máy chủ hoặc môi trường khác nhau.

Tùy thuộc vào nhu cầu và yêu cầu cụ thể của ứng dụng, bạn có thể sử dụng cả hai phương pháp để quản lý cấu hình và thông tin môi trường. File INI thường được sử dụng để cấu hình ứng dụng cụ thể, trong khi biến môi trường thường được sử dụng để lưu trữ các biến toàn cục môi trường cho hệ thống hoặc các biến cài đặt cho máy chủ.

Kết luận

Qua bài viết này, chúng tôi hi vọng bạn đã hiểu rõ ứng dụng của hàm parse_ini_file() trong PHP. Nếu bạn thấy bài viết hay thì hãy chia sẻ bài viết này để mọi người cùng nhau học tập nhé. Chúc các bạn học tốt!


Stringee Communication APIs là giải pháp cung cấp các tính năng giao tiếp như gọi thoại, gọi video, tin nhắn chat, SMS hay tổng đài CSKH cho phép tích hợp trực tiếp vào ứng dụng/website của doanh nghiệp nhanh chóng. Nhờ đó giúp tiết kiệm đến 80% thời gian và chi phí cho doanh nghiệp bởi thông thường nếu tự phát triển các tính năng này có thể mất từ 1 - 3 năm.

Bộ API giao tiếp của Stringee hiện đang được tin dùng bởi các doanh nghiệp ở mọi quy mô, lĩnh vực ngành nghề như TPBank, VOVBacsi24, VNDirect, Shinhan Finance, Ahamove, Logivan, Homedy,  Adavigo, bTaskee…

Quý bạn đọc quan tâm xin mời đăng ký NHẬN TƯ VẤN TẠI ĐÂY: