آموزش ایجاد فایل ini در php :
<?php
//@URL http://stackoverflow.com/questions/1268378/create-ini-file-write-values-in-php?answertab=votes#answer-1268642
function write_ini_file($assoc_arr, $path, $has_sections = FALSE)
{
$content = "";
if ($has_sections) {
foreach ($assoc_arr as $key => $elem) {
$content .= "[" . $key . "]\n";
foreach ($elem as $key2 => $elem2) {
if (is_array($elem2)) {
for ($i = 0; $i < count($elem2); $i++) {
$content .= $key2 . "[] = \"" . $elem2[$i] . "\"\n";
}
} else if ($elem2 == "") $content .= $key2 . " = \n";
else $content .= $key2 . " = \"" . $elem2 . "\"\n";
}
}
} else {
foreach ($assoc_arr as $key => $elem) {
if (is_array($elem)) {
for ($i = 0; $i < count($elem); $i++) {
$content .= $key . "[] = \"" . $elem[$i] . "\"\n";
}
} else if ($elem == "") $content .= $key . " = \n";
else $content .= $key . " = \"" . $elem . "\"\n";
}
}
if (!$handle = fopen($path, 'w')) {
return false;
}
$success = fwrite($handle, $content);
fclose($handle);
return $success;
}
// write your array now in a .ini file
$sampleData = array(
'first' => array(
'first-1' => 1,
'first-2' => 2,
'first-3' => 3,
'first-4' => 4,
'first-5' => 5,
),
'second' => array(
'second-1' => 1,
'second-2' => 2,
'second-3' => 3,
'second-4' => 4,
'second-5' => 5,
));
write_ini_file($sampleData, './data.ini', true);
خواند فایل ini در php :
آموزش رو با مثال دنبال کنید :
در مسیر C:\xampp\htdocs\ini فایلی به اسم sample.ini با محتوای زیر ایجاد کن :
[Cars]
var1 = 1
var2 = 2
حالا فایلی به نام index.php با محتوای زیر ایجاد کن :
<?php
// 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);
?>
حالا با مرورگر fireFox اینو اجرا بگیر :
http://localhost/ini/
خودش index.php رو اجرا می کنه و خروجی میشه چیزی شبیه این :
Array ( [var1] => 1 [var2] => 2 ) Array ( [Cars] => Array ( [var1] => 1 [var2] => 2 ) )
منبع :
اگه خونه ی اول آرایه رو هم بخوای تکی بدست بیاری :
echo($ini_array["var1"]);
خروجی: 1
-------
اطلاعات بیشتر بر گرفته از پرومیکرز:
تجزیه یک فایل ini
parse_ini_file
parse_ini_file — تجزیه یک فایل ini
شرح
کد PHP:
array parse_ini_file ( string $filename [, bool $process_sections = false [, int $scanner_mode = INI_SCANNER_NORMAL ]] )
این تابع همه ی اطلاعات یک فایل ini را به صورت یک آرایه ی بر می گرداند .
پارامتر ها
filename
فایل ini ای که می خواهید آنرا تجزیه و تحلیل کنید .
process_sections
اگر مقدار این پارامتر را برابر
true قرار
دهید یک آرایه ی چند بعدی بر می گرداند با نام section ها ( بخش هایی که
در [] هستند ) و setting ( داده ها ) مقدار این پارامتر به صورت پیش فرض
برابر
false است .
scanner_mode
دو مقدار
INI_SCANNER_NORMAL و
INI_SCANNER_RAW را می تواند داشته باشد .
INI_SCANNER_NORMAL مقدار پیش فرض است
اگر
INI_SCANNER_RAW انتخاب شود مقدار ها( ارزش های متغیر ها ) تجزیه نخواهند شد .
برگرداندن مقدار ها
یک آرایه ی چند بعدی را در صورت موفقیت بر می گرداند اگر موفق نباشد مقدار
false بر گردانده می شود .
یک مثال
فایل زیر را با نام 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"
در فایل php زیر می خواهیم فایل را تجزیه کنیم:
<?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);
?>
*** define تا اونجایی که من می دونم یک ثابت ایجاد می کنه الان ما یک ثابت
ایجاد کردیم با اسم BIRD و مقدارش رو برابر Dodo bird قرار دادیم
ثابت ها بر خلاف متغیر های برای فراخونیشون نیاز به $ نیست و فقط اسمش رو بنویسیم فراخوانی می شن
برای مثال
echo BIRD;
خروجی این کد چیزی شبیه به این میشه:
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
)
)
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
)
)
)
***همونطوری که می بینید مقدار BIRD به جای Dodo bird هست
منبع اصلی :
http://php.net/manual/en/function.parse-ini-file.php
http://www.promakers.ir/showthread.php?tid=8956&pid=98665#pid98665