Định nghĩa.
Hàm parse_ini_file()
sẽ lấy thông tin cấu hình từ file cấu hình( file ini) truyền vào..
Cú pháp.
Cú pháp:
parse_ini_file ( string$filename
[, bool$process_sections
=FALSE
[, int$scanner_mode
= INI_SCANNER_NORMAL ]] ) : array
Trong đó.
$filename
là tên file ini cần lấy thông tin.$process_sections
là tham số, mặc định là False, nếu mang giá trị là True, bạn sẽ có một mảng đa chiều bao gồm tên phần tử và các thiết lập.$scanner_mode
có thể là INI_SCANNER_NORMAL (mặc định) hoặc INI_SCANNER_RAW. Nếu mang giá trị INI_SCANNER_RAW, thì các giá trị tùy chọn sẽ không được phân tích cú pháp.
Giá trị trả về.
- Hàm sẽ trả về một mảng chứa thông tin cấu hình nếu hàm chạy thành công. Ngược lại nếu chạy thất bại, hàm sẽ trả về False.
Changelog
Phiên bản | Mô tả |
---|---|
7.0.0 | Dấu băm (#) không còn được công nhận là comment |
5.6.1 | Đã thêm chế độ INI_SCANNER_TYPED mới. |
5.3.0 | Đã thêm tham số Scanner_mode tùy chọn. Báo giá đơn bây giờ có thể được sử dụng xung quanh các bài tập biến. Dấu băm (#) không còn được sử dụng làm nhận xét và sẽ đưa ra cảnh báo không dùng nữa nếu được sử dụng. |
5.2.7 | Về lỗi cú pháp, hàm này sẽ trả về FALSE chứ không phải là một mảng trống. |
5.2.4 | Các khóa và tên phần bao gồm các số hiện được đánh giá là số nguyên PHP, do đó các số bắt đầu bằng 0 được đánh giá là bát phân và các số bắt đầu bằng 0x được đánh giá là hexadecimals. |
Ví dụ.
Ví dụ # 1 Nội dung của sample.ini
; This is a sample configuration file ; Comments start with ';', as in php.ini [first_section] one = 1 five = 5 animal = BIRD [second_section] path = "/usr/local/bin" URL = "http://www.example.com/~username" [third_section] phpversion[] = "5.0" phpversion[] = "5.1" phpversion[] = "5.2" phpversion[] = "5.3" urls[svn] = "http://svn.php.net" urls[git] = "http://git.php.net"
Ví dụ # 2 parse_ini_file ()
- Constants cũng có thể được phân tích cú pháp trong tệp ini vì vậy nếu bạn xác định hằng số là giá trị ini trước khi chạy parse_ini_file (), nó sẽ được tích hợp vào kết quả. Chỉ có giá trị ini được đánh giá. Ví dụ:
<?php define('BIRD', 'Dodo bird'); // Parse without sections $ini_array = parse_ini_file("sample.ini"); print_r($ini_array); // Parse with sections $ini_array = parse_ini_file("sample.ini", true); print_r($ini_array); ?>
Ví dụ trên sẽ xuất ra một cái gì đó tương tự như:Array ( [one] => 1 [five] => 5 [animal] => Dodo bird [path] => /usr/local/bin [URL] => http://www.example.com/~username [phpversion] => Array ( [0] => 5.0 [1] => 5.1 [2] => 5.2 [3] => 5.3 ) [urls] => Array ( [svn] => http://svn.php.net [git] => http://git.php.net ) ) Array ( [first_section] => Array ( [one] => 1 [five] => 5 [animal] => Dodo bird ) [second_section] => Array ( [path] => /usr/local/bin [URL] => http://www.example.com/~username ) [third_section] => Array ( [phpversion] => Array ( [0] => 5.0 [1] => 5.1 [2] => 5.2 [3] => 5.3 ) [urls] => Array ( [svn] => http://svn.php.net [git] => http://git.php.net ) )
Ví dụ # 3 parse_ini_file () phân tích tệp php.ini
<?php // A simple function used for comparing the results below function yesno($expression) { return($expression ? 'Yes' : 'No'); } // Get the path to php.ini using the php_ini_loaded_file() // function available as of PHP 5.2.4 $ini_path = php_ini_loaded_file(); // Parse php.ini $ini = parse_ini_file($ini_path); // Print and compare the values, note that using get_cfg_var() // will give the same results for parsed and loaded here echo '(parsed) magic_quotes_gpc = ' . yesno($ini['magic_quotes_gpc']) . PHP_EOL; echo '(loaded) magic_quotes_gpc = ' . yesno(get_cfg_var('magic_quotes_gpc')) . PHP_EOL; ?>Ví dụ trên sẽ xuất ra một cái gì đó tương tự như:
(parsed) magic_quotes_gpc = Yes (loaded) magic_quotes_gpc = Yes
Ghi chú.
- Ghi chú: Hàm này không liên quan gì đến tệp php.ini. Nó đã được xử lý theo thời gian bạn chạy tập lệnh của mình. Chức năng này có thể được sử dụng để đọc trong các tệp cấu hình của ứng dụng của riêng bạn.
- Ghi chú: Nếu một giá trị trong tệp ini chứa bất kỳ ký tự không chữ và số nào thì nó cần được đặt trong dấu ngoặc kép (“).
- Lưu ý: Có những từ dành riêng không được sử dụng làm khóa cho các tệp ini. Chúng bao gồm: null, có, không, đúng, sai, bật, tắt, không có. Các giá trị null, tắt, không và kết quả sai trong “” và các giá trị trên, có và kết quả đúng trong “1”, trừ khi chế độ INI_SCANNER_TYPED được sử dụng (kể từ PHP 5.6.1). Ký tự? {} | & ~! () ^ “Không được sử dụng ở bất kỳ đâu trong khóa và có ý nghĩa đặc biệt trong giá trị.
- Ghi chú: Bài dự thi không có dấu bằng được bỏ qua. Ví dụ: “foo” bị bỏ qua trong khi “bar =” được phân tích cú pháp và thêm vào với một giá trị trống. Ví dụ: MySQL có cài đặt “không tự động thử lại” trong my.cnf không có giá trị, vì vậy nó bị bỏ qua.
Hàm liên quan.
- parse_ini_string() – Phân tích chuỗi cấu hình
Thông tin thêm.
- lưu ý các tập tin cấu hình nên được lưu trữ bên ngoài thư mục www-root / htdocs của bạn
- Và đối với extra-paranoid như tôi, hãy thêm quy tắc vào tệp httpd.conf của bạn để * .ini (hoặc * .inc) trong trường hợp của tôi không thể được gửi tới trình duyệt:
<Files *.inc> Order deny,allow Deny from all </Files>
- Nếu tệp cấu hình của bạn chứa bất kỳ thông tin nhạy cảm nào (như chi tiết đăng nhập cơ sở dữ liệu), hãy nhớ KHÔNG đặt nó trong thư mục gốc tài liệu của bạn! Một lỗi phổ biến là thay thế các tệp config.inc.php, được định dạng trong PHP:
<?php $database['host'] = 'localhost'; // etc... ?>
Với các tệp config.ini được viết bằng văn bản thuần túy: [database] host = localhost Tập tin config.ini có thể được đọc bởi bất kỳ ai biết vị trí của nó, nếu nó nằm trong thư mục gốc tài liệu của bạn. Hãy nhớ đặt nó ở trên!
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 parse_ini_file() 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