Jump to content
  • 0

Где лучше в XML или INI?


Ялекс
 Share

Question

Требуется держать структуру сайта в файле.

Сделал все через INI:

[index]
title=Главная
children=photo,about_me,contact

[contact]
title=Контакты

[about_me]
title=Обо мне

[photo]
title=Фото

В XML можно было бы написать так:

<root>
<page>
<title>Главная</title>
<child>
<page>
<slug>about_me</slug>
<title>Обо мне</title>
</page>
<page>
<slug>photo</slug>
<title>Фото</title>
</page>
<page>
<slug>contacts</slug>
<title>Контакты</title>
</page>
</child>
</page>
</root>

Я понимаю, что держать в XML целесообразней из за того, что данные при желании будут легко переносимы, но:

1. Много лишней писанины

2. Скорость парсинга, наверное меньше

Мне нужна простая и понятная организация файла (чтобы можно было править руками), с возможностью записывать древовидные структуры данных.

Не подскажите, что лучше? Может есть альтернативные способы?

PS: Условие: Баз Данных нет.

Edited by Ялекс
Link to comment
Share on other sites

Recommended Posts

  • 0
INI-файлы - файлы настроек, конфигурационные файлы. Применяются, как в Windows так и в других средах.

PHP работает с такими файлами посредством функции parse_ini_file.

о_О

йа тролль!

Link to comment
Share on other sites

  • 0

Я бы использовал XML - это ООП (какой никакой), более структуиризированные данные. Скорость парсинга может и медленей, чем у INI, но имхо это совсем незаметно человеческому глазу (если конечно, вы данные гигабайтами не будете хранить в XML (INI)), и оно того стоит...

Link to comment
Share on other sites

  • 0

ИМХО лучше хранить конфигурацию в XML, потому что он гибок, имеет хорошую логику и от этого хорошо переносим. Недостатки в этом случае не особо применимы.

Много писанины? Это зависит от выбранной структуры. К тому же можно написать скрипт, с помощью которого можно будет добавлять новые записи в конфигурацию.

Скорость парсинга? Я думаю на парсинг конфигурации много времени не уйдет, если конечно ты не собираешься написать 20 МБ конфигурации. В пределах разумного парсинг будет достаточно быстр.

Link to comment
Share on other sites

  • 0
Этот файл нужно будет править ручками, то нужно будет писать много лишних слов. Вот и ищу больше доводов за XML.

ИМХО править ручками, что XML, что INI - нудно и особой разницы нет, даже XML как-то наглядней смотриться и от этого улучшается поиск информации для редактирования файла... А вообще, лучше написать модуль управления этими данными. И т.к. для XML существует множество классов - можно легко уложиться в 200-300 строк кода...

если конечно ты не собираешься написать 20 МБ конфигурации.

У меня на локальном серваке, лежит файлик XML 37МБ. Скрипт довольно шустро его обрабатывает, не дольше секунды...

Edited by Vialls
Link to comment
Share on other sites

  • 0
У меня на локальном серваке, лежит файлик XML 37МБ. Скрипт довольно шустро его обрабатывает, не дольше секунды...

ну если бы файлик просто лежал и время от времени совершался парсинг, тогда можно допустить большие размеры. Но если это конфиг, то он наверняка будет парситься при каждом обращении к сайту и время в одну секунду слишком большое для конфига, особенно если совершаются другие действия, которые занимают много времени.

Link to comment
Share on other sites

  • 0
ну если бы файлик просто лежал и время от времени совершался парсинг, тогда можно допустить большие размеры. Но если это конфиг, то он наверняка будет парситься при каждом обращении к сайту и время в одну секунду слишком большое для конфига, особенно если совершаются другие действия, которые занимают много времени.

Об этом как-то не подумал, вы правы.

Link to comment
Share on other sites

  • 0

Так, парни, я не так часто задаю вопросы, но вот если кто знает или кто работал с Simple XML скажите: почему возвращает данные в UTF-8, если на деле я пишу:

<?xml version="1.0" encoding="Windows-1251" ?>

?

Edited by Ялекс
Link to comment
Share on other sites

  • 0

PHP работает с XML только в кодировке UTF-8 xD Юзай на сайте тоже UTF-8, win-1251 — это прошлое :unsure:

Если utf-8 не устраивает, то:

<?php
//...
echo iconv("utf-8", "windows-1251", $xml->page[0]->title);
//...
?>

Можно просто обертку сделать, для функции echo, что бы этот длинный код не писать каждый раз.

Edited by Vialls
Link to comment
Share on other sites

  • 0

Да, увы, принуждают использовать Utf-8. Прочитал только что на другом форуме подобный ответ по XML.

Спасибо... Но я разочарован... Почему только UTF-8? Разве нет альтернативных настроек SimpleXML для возвращения в другой кодировке? ((( На кой черт тогда XML-заголовок, если данные все равно в UTF-8 приходят... не пойму...

Link to comment
Share on other sites

  • 0

Мне кажется, это какой-то шаг по внедрению UTF-8 кодировки в стандарт. Вероятно Unicode заплатил разработчикам PHP за это... Или, что-то в таком духе... Потому что ИМХО разработчики бы просто так не делали поддержку только UTF-8...

Link to comment
Share on other sites

  • 0

UTF это международный стандарт, который стремятся внедрить все разработчики в свои продукты (кроме MS разумеется), поскольку он имеет в себе почти все кодировки всех языков. PHP 6 обещают изначально сделать на утф, чтобы не заморачиваться и ИМХО это правильное решение.

Link to comment
Share on other sites

  • 0
(кроме MS разумеется)

o_O Почему такое мнение? Виста по умолчанию работает с UTF-8 + одна из вариаций ASCII (напримр windows-1251)... Visual Studio 2008, тоже отлично работает с UTF-8...

ИМХО это правильное решение.

+1

Edited by Vialls
Link to comment
Share on other sites

  • 0
o_O Почему такое мнение? Виста по умолчанию работает с UTF-8 + одна из вариаций ASCII (напримр windows-1251)... Visual Studio 2008, тоже отлично работает с UTF-8...

Я имел в виду что MS не совсем стремится к внедрнию утф, поскольку всегда обходилась своей кодировкой, а внедряет утф только потому, что все начинают его использовать.

Edited by xPoint
Link to comment
Share on other sites

  • 0
Я имел в виду что MS не совсем стремится к внедрнию утф, поскольку всегда обходилась своей кодировкой, а внедряет утф только потому, что все начинают использовать его использовать.

А, ну это да... Согласен..

Link to comment
Share on other sites

  • 0
Спасибо... Но я разочарован... Почему только UTF-8? Разве нет альтернативных настроек SimpleXML для возвращения в другой кодировке? ((( На кой черт тогда XML-заголовок, если данные все равно в UTF-8 приходят... не пойму...

Загаловок как раз на тот черт, чтобы любой текст в любой коировке всегда верно и без проблем приводить в одну и только одну, заранее известную, лишеную недостатков кодировку. Ты можешь точно знать что то, что ты получаешь от SimpleXML в формате UTF-8 и не заботится больше о кодировке.

o_O Почему такое мнение? Виста по умолчанию работает с UTF-8

Т.е. ты думаешь, что API вызовы, оканчивающиеся на w, которые с 98-й версии работали строго в utf-16 просто вот так взяли и переделали на utf-8 и не одна программа не заметила, и ничего не сломалось? Тебя или сильно дизинформировали или ты где-то напутал.

Link to comment
Share on other sites

  • 0
Т.е. ты думаешь, что API вызовы, оканчивающиеся на w, которые с 98-й версии работали строго в utf-16 просто вот так взяли и переделали на utf-8 и не одна программа не заметила, и ничего не сломалось? Тебя или сильно дизинформировали или ты где-то напутал.

Хм, точно... Щас прочитал - в vista utf-16... Блин, а я уверен, что где-то читал, что начиная с висты, там используется utf-8...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy