Парсинг конфига из текстового файла

StalkerClasses

Новичок
У шаблонизатора Smarty есть очень удобная возможность - {config_load}
http://www.smarty.net/docsv2/ru/language.function.config.load.tpl

по загрузке отформатированных данный из файла и преобразованиях их в массив.

Есть ли похожие классы для PHP, что бы создав файл с конфигурацией:
Код:
#это комментарий конфигурационного файла

# глобальные переменные
pageTitle = "Main Menu"
bodyBgColor = #000000
tableBgColor = #000000
rowBgColor = #00ff00

#секция переменных customer
[Customer]
pageTitle = "Customer Info"
Можно было его получить в виде массива с разобранными данными.
 

StalkerClasses

Новичок
Попробовал данную функцию (но с ней секцию нельзя назвать произвольно, секцию нельзя назвать повторным именем, значения должны иметь "ключ = значение"), а также нет поддержки мульстрок.
PHP:
<?php

define('BIRD', 'Dodo bird');

// Обрабатываем без секций
$ini_array = parse_ini_file("sample.ini");
print_r($ini_array);

// Обрабатываем с секциями
$ini_array = parse_ini_file("sample.ini", true);

print "<pre>";
print_r($ini_array);

?>
Код:
; Это пример файла настроек
; Комментарии начинаются с ';', как в php.ini

[first_section]
one = 1
five = 5
animal = BIRD

[first_section 2]
f@"we" уацауц
tre | greg r| gre
"""
    tre |  ret | gre
    fwefew
    fewfew
"""

[second_section]
path = /usr/local/bin
URL = "http://www.example.com/~username"
Вот во второй секции не работают подобные возможности.
 
Последнее редактирование:

StalkerClasses

Новичок
а зачем такие выпендрежи в ini? хочешь гибче - бери yaml
Код:
  1: { id: 2, name: "William O'Neil", isActive: false }

category:
  0: { id: 1, name: "PHP" }
  1: { id: 2, name: "YAML" }
  2: { id: 3, name: "XML" }

article:
  0:
    id:      1
    title:   "How to Use YAML in Your Next PHP Project"
    content: >
               YAML is a less-verbose data serialization format.
               It stands for "YAML Ain't Markup Language".
               YAML has been a popular data serialization format among
               software developers mainly because it's human-readable.
    author:  1
    status : 2

articleCategory:
  0: { articleId: 1, categoryId: 1 }
  1: { articleId: 1, categoryId: 2 }
Посмотрел Yaml - штука действительно классная.
Но есть ли аналоги (на хостинге не поддерживается)?

Из Smarty вырезать не получается.
 

AnrDaemon

Продвинутый новичок
yaml вообще убожество. Годится только если никогда не придётся трогать файл руками. Но тогда уже проще sqlite запилить. И намного удобнее.
 

WMix

герр M:)ller
Партнер клуба
наоборот самый наглядный и малословный
 

AnrDaemon

Продвинутый новичок
Какой он [цензура] наглядный, если зависит от позиционного расположения элементов?… Поставил вместо таба два пробела - уже ошибка. Ты её не видишь, а парсер спотыкается.
 

WMix

герр M:)ller
Партнер клуба
пробелы вместо табов
ну это же ide сама делает.. но я тоже этой моды не понимал
вместо таба два пробела
рефлексы? обычно просто ентер, вообще не парюсь и даже не думал о пробелах и табах
JSON - лучший вариант, и никакие выпендрежи с ini или Yaml нафиг не нужны. И человеком читается легко и "машиной".
чем тебе php array не угодил?
 
Последнее редактирование:

Фанат

oncle terrible
Команда форума
var_export() есличо :rolleyes:
 
Последнее редактирование:

AnrDaemon

Продвинутый новичок
Так наоборот — YAML запрещает табы, не?
http://www.yaml.org/faq.html
Смысл в неоднозначности получаемого кода, а не в том, что правильно. Если я могу JSON вбить от руки, и быть уверенным в том, что машина меня поймёт правильно, с YAML у меня такой уверенности нет.
 

Вурдалак

Продвинутый новичок
Смысл в неоднозначности получаемого кода, а не в том, что правильно. Если я могу JSON вбить от руки, и быть уверенным в том, что машина меня поймёт правильно, с YAML у меня такой уверенности нет.
Если ты регулярно ставишь табы вместо пробелов и до сих пор не настроил свой редактор, то у тебя какие-то проблемы. YAML тут не виноват.
 
Сверху