[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

1. PHP4 en lager word niet meer aan verder gewerkt, dus dat zal geen probleem zijn

2. Eén keer posten is voldoende, als het niet snel genoeg gaat wacht dan en kijk of het daadwerkelijk is gepost. hij staat er nu 4 keer!

Inloggen wachtwoord vergeten? Aanmelden