[PHP<4] Parse_ini_string
Gepost door Erwin E. op 23-01-2011 00:12.
Ik heb dit script ooit eens geschreven toen ik voor een klant op een verouderde server een script moest schrijven.
---
Oftewel, dit script doet precies hetzelfde als de officiële functie. Deze doet t daarentegen ook op oudere versies van php.
Bestanden van dit script
parse_ini_string.inc.php
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <?php
//Copyright Erwin van Eijk 2010
//Script: replacement for the function, for lower php versions
function parse_ini_string($string,$sections = false) {
$aIni = explode("\n",$string);
foreach($aIni as $sLine) {
$sLine = trim($sLine,"\x00..\x1F ");
if (($sections) && (preg_match("/^\[(.+)\]/",$sLine))) {
$sCkey = preg_replace("/^\[(.+)\].*/",'$1',$sLine);
}
if(preg_match("/^(.+)\=(.+)/",$sLine)) {
$aNew = explode('=',$sLine);
$aNew[0] = rtrim($aNew[0]);
$aNew[1] = preg_replace("/([^ ].+|(\"|\')(.*)(\"|\'))\;.*$/",'$1',$aNew[1]);
$aNew[1] = preg_replace("/^(\'|\")(.*)(\'|\")$/",'$2',trim($aNew[1]));
if(preg_match("/(true|false)/",$aNew[1])) $aNew[1] = (bool) $aNew[1];
elseif(preg_match("/[0-9].*/",$aNew[1])) $aNew[1] = (int) $aNew[1];
if($sections) $aReturn[$sCkey][$aNew[0]] = $aNew[1];
else $aReturn[$aNew[0]] = $aNew[1];
}
}
if(!empty($aReturn)) return $aReturn;
else return false;
}
?> |
Commentaar
23-01-2011 09:52


