parse_ini_file : Error parsing xxx.ini on line 5
ผมต้องการอ่านค่าใน INI File แต่มัน Error ตอลดเลยคับสังเกตได้ว่ามัน error บรรทัดที่มีวงเล็บตลอดเลยคับ มีวิธีที่จะไม่ให้มัน Error
ได้หรือไม่คับ เพราะไฟล์นี้ถูกสร้างมาด้วยอีกโปรแกรมหนึ่ง และผมต้องการที่จะ ให้ PHP แสดง Version ของโปรแกรมนั้น ผ่าน PHP
อยากให้ข้อคงามที่ได้ออกมาเป็น
1000 (20081024)
ไม่ทราบว่าจะทำได้หรือเปล่าคับ ขอบคุณคับ
--------------------------------------
INI File
[SELFDEFENSE640]
platform=x64
versionid=1000
type=selfdefense64
version=1000 (20081024)
group=perseus
date=24.10.2008
file=nod7C31.nup
buildregname=Selfdefense64Build
build=1015
level=0
base=268435456
size=28673
category=engine
------------------------------------
Code
<?php
$arr=parse_ini_file("xxx.ini",true);
echo $arr['SELFDEFENSE640']['version'];
?>
-----------------------------------
แสดงผล
Warning: Error parsing xxx.ini on line 5
ได้หรือไม่คับ เพราะไฟล์นี้ถูกสร้างมาด้วยอีกโปรแกรมหนึ่ง และผมต้องการที่จะ ให้ PHP แสดง Version ของโปรแกรมนั้น ผ่าน PHP
อยากให้ข้อคงามที่ได้ออกมาเป็น
1000 (20081024)
ไม่ทราบว่าจะทำได้หรือเปล่าคับ ขอบคุณคับ
--------------------------------------
INI File
[SELFDEFENSE640]
platform=x64
versionid=1000
type=selfdefense64
version=1000 (20081024)
group=perseus
date=24.10.2008
file=nod7C31.nup
buildregname=Selfdefense64Build
build=1015
level=0
base=268435456
size=28673
category=engine
------------------------------------
Code
<?php
$arr=parse_ini_file("xxx.ini",true);
echo $arr['SELFDEFENSE640']['version'];
?>
-----------------------------------
แสดงผล
Warning: Error parsing xxx.ini on line 5
ถ้าจำเป็นต้องมีช่องว่าง ให้ใส่ข้อความไว้ภายใน "..." ครับ
ขอบคุณคับ
ผมใช้ได้แล้วคับผมใช้ Function นี้คับ
--------------------------------------------
<?php
function parseIniFile($iIniFile)
{
$aResult =
$aMatches = array();
$a = &$aResult;
$s = '\s*([[:alnum:]_\- \*]+?)\s*';
preg_match_all('#^\s*((\['.$s.'\])|(("?)'.$s.'\\5\s*=\s*("?)(.*?)\\7))\s*(;[^\n]*?)?$#ms', @file_get_contents($iIniFile), $aMatches, PREG_SET_ORDER);
foreach ($aMatches as $aMatch)
{
if (empty($aMatch[2]))
$a [$aMatch[6]] = $aMatch[8];
else $a = &$aResult [$aMatch[3]];
}
return $aResult;
}
$arr=parseIniFile("xxx.ini);
echo $arr['SELFDEFENSE640']['version'];
?>
------------------------------------------------
แสดงผล
1000 (20081024)
-----------------------------------------------
Credit
PHP - Jean-Jacques Guegan
http://mach13.com/loose-and-multiline-parse_ini_file-function-in-php
แนะนำให้นำบทความนี้ไปเขียนไว้บนบล๊อกครับ จะได้เผื่อเพื่อนสมาชิกท่านอื่นด้วย