downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

pathinfo> <parse_ini_file
[edit] Last updated: Fri, 07 Jun 2013

view this page in

parse_ini_string

(PHP 5 >= 5.3.0)

parse_ini_stringBir yapılandırma dizgesini çözümler

Açıklama

array parse_ini_string ( string $ini [, bool $bölümleri_işle = false [, int $tarama_kipi = INI_SCANNER_NORMAL ]] )

parse_ini_string() işlevi ini dizgesi içindeki ayarları bir ilişkisel dizi içinde döndürür.

ini dizgesinin yapısı php.ini dosyasının yapısıyla aynı olmalıdır.

Değiştirgeler

ini

Çözümlenecek ini dosyası içeriği.

bölümleri_işle

Bu değiştirgeye TRUE atanırsa bölüm isimlerini ve içerdikleri ayarları içeren çok boyutlu bir dizi döner. Değiştirgenin öntanımlı değeri FALSE'tır.

tarama_kipi

Değeri INI_SCANNER_NORMAL (öntanımlıdır) veya INI_SCANNER_RAW olabilir. Eğer INI_SCANNER_RAW belirtilirse seçenek değerleri çözümlenmez.

Dönen Değerler

Başarısızlık durumunda FALSE aksi takdirde ayarları bir ilişkisel dizi içinde döndürür.

Notlar

Bilginize: INI dosyalarında anahtar olarak kullanılmaması gereken bazı özel sözcükler vardır. null, yes, no, true, false, on, off, none bunlardan bazılarıdır. null, no ve false "" ile sonuçlanırken, yes ve true "1" ile sonuçlanır. {}|&~![()^" karakterleri hiçbir yerde anahtar veya değer olarak kullanılmamalıdır.

Ayrıca Bakınız



add a note add a note User Contributed Notes parse_ini_string - [1 notes]
up
3
epicmaxim at gmail dot com
2 months ago
parse_ini_string_m is analog for a parse_ini_string function.

had to code this function due to the lack of a php 5.3 on some hosting.

parse_ini_string_m:
- ignores commented lines that start with ";" or "#"
- ignores broken lines that do not have "="
- supports array values and array value keys

<?php
function parse_ini_string_m($str) {
   
    if(empty(
$str)) return false;

   
$lines = explode("\n", $str);
   
$ret = Array();
   
$inside_section = false;

    foreach(
$lines as $line) {
       
       
$line = trim($line);

        if(!
$line || $line[0] == "#" || $line[0] == ";") continue;
       
        if(
$line[0] == "[" &amp;&amp; $endIdx = strpos($line, "]")){
           
$inside_section = substr($line, 1, $endIdx-1);
            continue;
        }

        if(!
strpos($line, '=')) continue;

       
$tmp = explode("=", $line, 2);

        if(
$inside_section) {
           
           
$key = rtrim($tmp[0]);
           
$value = ltrim($tmp[1]);

            if(
preg_match("/^\".*\"$/", $value) || preg_match("/^'.*'$/", $value)) {
               
$value = mb_substr($value, 1, mb_strlen($value) - 2);
            }

           
$t = preg_match("^\[(.*?)\]^", $key, $matches);
            if(!empty(
$matches) &amp;&amp; isset($matches[0])) {

               
$arr_name = preg_replace('#\[(.*?)\]#is', '', $key);

                if(!isset(
$ret[$inside_section][$arr_name]) || !is_array($ret[$inside_section][$arr_name])) {
                   
$ret[$inside_section][$arr_name] = array();
                }

                if(isset(
$matches[1]) &amp;&amp; !empty($matches[1])) {
                   
$ret[$inside_section][$arr_name][$matches[1]] = $value;
                } else {
                   
$ret[$inside_section][$arr_name][] = $value;
                }

            } else {
               
$ret[$inside_section][trim($tmp[0])] = $value;
            }           

        } else {
           
           
$ret[trim($tmp[0])] = ltrim($tmp[1]);

        }
    }
    return
$ret;
}
?>

example usage:

<?php
$ini
= '

    [simple]
    val_one = "some value"
    val_two = 567

    [array]
    val_arr[] = "arr_elem_one"
    val_arr[] = "arr_elem_two"
    val_arr[] = "arr_elem_three"

    [array_keys]
    val_arr_two[6] = "key_6"
    val_arr_two[some_key] = "some_key_value"

'
;

$arr = parse_ini_string_m($ini);
?>

variable $arr output:

Array
(
    [simple] => Array
    (
        [val_one] => some value
        [val_two] => 567
    )

    [array] => Array
    (
        [val_arr] => Array
        (
            [0] => arr_elem_one
            [1] => arr_elem_two
            [2] => arr_elem_three
        )
    )

    [array_keys] => Array
    (
        [val_arr_two] => Array
        (
            [6] => key_6
            [some_key] => some_key_value
        )

    )

)

 
show source | credits | sitemap | contact | advertising | mirror sites