<MyRusakov.ru />

Создание движка на PHP и MySQL 2.0

Создание движка на PHP и MySQL 2.0

Видеокурс "Создание движка на PHP и MySQL 2.0" научит Вас создавать профессиональные движки для сайтов на PHP и MySQL с использованием ООП и паттерна MVC.

В курсе разобрана вся теория по структуре движка: как всё устроено, какие должны быть объекты, какая у них иерархия и как они взаимодействуют между собой.

В практической части будет создан движок с чистого листа. Будет создано ядро, все адаптеры, все вспомогательные классы, а также классы для работы с объектами базы данных. И чтобы курс был максимально полезным, будет создан движок для сайта MyRusakov.ru.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Чтение INI-файла в PHP

Чтение INI-файла в PHP

INI-файлы - это обычные текстовые файлы, состоящие из определённых секций. Как правило, INI-файлы используются для сохранения определённых настроек, например, настроек языка. И, разумеется, чтобы наш сайт мог легко изменяться тем или иным образом, можно все параметры, отвечающие за это изменение, поместить в отдельный файл. И как быстро извлечь в PHP из этого файла все настройки мы и разберём в этой статье.

Для чтения INI-файла в PHP используется функция parse_ini_file(). Но прежде, чем её использовать, создадим INI-файл "settings.ini":

Par1=10
Par2=20

В этом файле мы описали два параметра и присвоили им определённые значения. А теперь создадим PHP-файл, в котором считаем данные из созданного файла с помощью функции parse_ini_file():

<?php
  $arr = parse_ini_file("settings.ini");
  print_r($arr);
?>

В результате, Вы увидите следующую строку: "Array ( [Par1] => 10 [Par2] => 20 )". Как видите, функция parse_ini_file() вернула массив с ключами в виде названия параметров и значениями в виде тех, что мы задавали в файле "settings.ini".

Теперь разберём пример из реальной практики. Сделаем одну страничку, которая будет выводить текст на языке, заданным GET-параметром. Для начала создадим INI-файл "lang_en.ini":

HELLO=Hello
WORLD=world

Теперь создадим PHP-скрипт:

<?php
  $lang = isset($_GET['lang'])? $_GET['lang']: "en";
  $langconst = parse_ini_file("lang_$lang.ini");
  echo $langconst['HELLO']." ".$langconst['WORLD']."!";
?>

Первой строкой мы проверяем: если был передан GET-параметр lang, то тогда считываем оттуда значение и записываем в переменную lang. А если никакого значения передано не было, то устанавливаем значение по умолчанию, в нашем случае: "en". Дальше мы обращаемся к файлу нужного языка и вытаскиваем оттуда данные. Затем уже просто выводим строку, используя полученные языковые константы. В результате, мы увидим: "Hello World!".

А теперь пришла пора доказать, почему это так удобно. Для того, чтобы добавить новый язык достаточно создать лишь ещё один файл, где перевести все языковые константы:

HELLO=Привет
WORLD=мир

Сохраните данный файл под названием "lang_ru.ini", и запустите скрипт: "адрес_скрипта.php?lang=ru". В результате, Вы увидите: "Привет мир!".

Как видите, мы создали лишь ещё один INI-файл, перевели константы на нужный язык и всё! Таким образом, Вы легко можете создать несколько языковых версий Вашего сайта, что смотрится очень здорово, а, главное, реализация этого достаточно простая.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (10):

Tomas777 Tomas777 15.10.2012 10:23:25

Здравствуйте, Михаил. Спасибо Вам за Ваши стать по PHP - очень помогают в начале освоения этого языка. Конкретно к теме по парсингу ini-фала, а точнее, выбора языка: Данный скрипт я оформил в виде функции выбора языка и создал две ссылки-переключателя, RUS и ENG. Всё работает..в пределах 1-ой страницы. А вот при навигации по сайту опять вылазит "дефолтовый" язык. Вопрос: Как реализовать "наследственность" (не знаю как еще это назвать) языка для навигации. Чтоб не приходилось постоянно кликать на выбор языка при переходе на другую страницу сайта. Заранее благодарю за ответ-совет.

Ответить

Tomas777 Tomas777 15.10.2012 10:52:33

Добавлю для ясности приведу свой "ремейк"-скрипт: <?php function langsel ($t){ $lang = isset($_GET['lang'])? $_GET['lang']: "en"; $langconst = parse_ini_file("lang_$lang.ini"); echo $langconst[$t];} ?> а где нужно подставляю следующее: <?php langsel("CONT")?> <--в ini-файлах CONT=Контакты(Contacts)

Ответить

Admin Admin 15.10.2012 19:32:48

Попробуйте хранить значение выбранного языка в куки, и на каждой странице сверяться с ними.

Ответить

Tomas777 Tomas777 16.10.2012 09:18:53

Ок, спасибо. Попробую.

Ответить

Vangog Vangog 04.03.2013 19:42:22

В строке $langconst = parse_ini_file("lang_$lang.ini"); непонятно, что такое в кавычках - lang_$lang.ini

Ответить

Admin Admin 04.03.2013 21:22:21

Это имя файла, например, lang_ru.ini

Ответить

irin irin 07.04.2014 23:14:03

Получается весь контент сайта нужно переводить по слову? Это же коллосальная работа, а не проще ли параллельно создать несколько версий сайта и делать редирект с основной версии сайта с помощью header?

Ответить

Yunior Yunior 18.08.2014 19:09:48

что означает знак вопроса и двоеточие в строке $lang = isset($_GET['lang'])? $_GET['lang']: "en";

Ответить

adidag adidag 27.08.2014 20:10:33

Здравствуйте Михаил. Я только недавно начал учить PHP Я ввел скрип как на вашем примере: <?php $lang = isset($_GET['lang'])? $_GET['lang']: "en"; $langconst = parse_ini_file("lang_$lang.ini"); echo $langconst['HELLO']." ".$langconst['WORLD']."!"; ?> но у меня в браузере выходит только "world!" Объясните пожалуйста, что не так? или может Вы ощиблись при вводе скрипта?

Ответить

verstala verstala 07.10.2016 13:25:40

Михаил а возможна ли реализация чтения text.ini в tpl файлах?

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.