создание ini файла php
База знаний
Создание и использование собственного файла php.ini (suPHP)
Создание и использование собственного файла php.ini
Внимание!: Данная информация не актуальна для наших серверов, управлять PHP.ini, т.е. настройками PHP и версией PHP, вы можете в CPanel в раздлеле Select PHP version ( Выбор PHP версии )
Любой пользователей может создать собственный файл php.ini и разместить его в папке вызываемого срипта.
Это довольно удобно, так как Вы можете самостоятельно редактировать свои настройки, без обращения в службу тех. поддержки
order allow,deny
deny from all
эти директивы запрещают просмотра файла php.ini посторонними.
Внимание: собственный файл php.ini действителен только в пределах директории, в которой размещён, если не указана специальная опция, см. ниже.
Права доступа на файлы и папки:
Таким образом при установке скриптов не требуется менять права доступа, даже если в инструкции к скрипту написано что их нужно изменить. Просто пропускайте пункт смены прав доступа CHMOD.
Пример файла php.ini и описание некоторых его параметров:
disable_functions = ; В целях безопасности, позволяет запретить выполнение указаных функций
max_execution_time = 30 ; Максимальное кол-во секунд исполнения скрипта
memory_limit = 16M ; Максимум оперативной памяти, которую может взять себе скрипт
E_NOTICE ; Показывать все ошибки, кроме замечаний
display_errors = On ; Вывод ошибок в браузер. Для облегчения отладки сценариев
register_globals = On ; Возможность обращения к переменным, поступающим через GET/POST/Cookie/сессии, как к обычным переменным (например, «$переменная»)
post_max_size = 55M ; Максимальный объём данных который может быть принят
magic_quotes_gpc = On ; Включение автоматической обработки кавычек, поступающих через POST/GET/Cookie
file_uploads = On ; Разрешает загрузку файлов
;upload_tmp_dir = ; Каталог для временных закачанных файлов (не забудте создать этот каталог!)
upload_max_filesize = 5M ; Максимальный размер закачиваемого файла
session.save_handler = files ; Хранить данные сессий в файлах
session.save_path = /tmp ; Папка для хранения файлов сессий (не забудте создать этот каталог!)
session.use_cookies = 1 ; Использовать cookie в сессиях
session.name = PHPSESSID ; Исользовать в качестве имени сессии и сессионной cookie ID сессии
session.auto_start = 0 ; Запрет на инициализацию сессии при начале соединения
session.use_trans_sid = 1 ; ID сессии будут добавляться ко всем ссылкам на странице автоматически (если у пользователя отключены cookie)
Внимание!: Данная информация не актуальна для наших серверов, управлять PHP.ini, т.е. настройками PHP и версией PHP, вы можете в CPanel в раздлеле Select PHP version ( Выбор PHP версии )
Связанные статьи
При установки какого либо движка (CMS), потребуется указать хост (host) к подключению базы.
Когда вы зашли по FTP или открыли Диспетчер файлов в CPanel, то директория для загрузки вашего.
Всем известно что когда вы копируете много мелких файлов на FTP, или на своем компьютере, с.
При установке скрипта Shop-Script PREMIUM выдает следующую ошибку:You have an error in your SQL.
Для этого существует специальная функция phpinfo(). Создайте в директории
В ini файлах обычно хранятся конфигурационные настройки или какие-то данные. Но вы можете использовать этот файл как хотите.
Вот простой пример. Создайте файл config.ini с таким содержимым:
Например, этот файл условно можно разделить на три секции: site,admin и redactor. Вы можете создавать свои секции, либо не использовать разбиение на них вообще, а просто прописывать нужные параметры с каждой строчки, но при этом их имена не должны совпадать.
parse_ini_file(‘config.ini’, true); — функция подключается к файлу ini и содержит массив его данных. Вторым параметром указывается true(отображать секции) или folse(не отображать). По умолчанию стоит folse.
В данном случае, если мы подключимся к этому файлу, то получим вложенный массив данных. Давайте посмотрим, как это выглядит. Создадим файл index.php и подключимся к config.ini.
Код index.php:
Мой сайт
Контакты
Администратор сайта
Редактор сайта
Меняя значения в ini файле, мы тем самым будем менять данные на сайте.
Запись в ini фал можно осуществить только через методы работы с файлами. Стандартного метода для ini в php нет.
А как получить только имена секций списком?
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Чтение INI-файла в PHP
Для чтения INI-файла в PHP используется функция parse_ini_file(). Но прежде, чем её использовать, создадим INI-файл «settings.ini«:
В этом файле мы описали два параметра и присвоили им определённые значения. А теперь создадим PHP-файл, в котором считаем данные из созданного файла с помощью функции parse_ini_file():
В результате, Вы увидите следующую строку: «Array ( [Par1] => 10 [Par2] => 20 )«. Как видите, функция parse_ini_file() вернула массив с ключами в виде названия параметров и значениями в виде тех, что мы задавали в файле «settings.ini«.
Теперь разберём пример из реальной практики. Сделаем одну страничку, которая будет выводить текст на языке, заданным GET-параметром. Для начала создадим INI-файл «lang_en.ini«:
Теперь создадим PHP-скрипт:
Первой строкой мы проверяем: если был передан GET-параметр lang, то тогда считываем оттуда значение и записываем в переменную lang. А если никакого значения передано не было, то устанавливаем значение по умолчанию, в нашем случае: «en«. Дальше мы обращаемся к файлу нужного языка и вытаскиваем оттуда данные. Затем уже просто выводим строку, используя полученные языковые константы. В результате, мы увидим: «Hello World!«.
А теперь пришла пора доказать, почему это так удобно. Для того, чтобы добавить новый язык достаточно создать лишь ещё один файл, где перевести все языковые константы:
Сохраните данный файл под названием «lang_ru.ini«, и запустите скрипт: «адрес_скрипта.php?lang=ru«. В результате, Вы увидите: «Привет мир!».
Как видите, мы создали лишь ещё один INI-файл, перевели константы на нужный язык и всё! Таким образом, Вы легко можете создать несколько языковых версий Вашего сайта, что смотрится очень здорово, а, главное, реализация этого достаточно простая.
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
Комментарии ( 10 ):
Добавлю для ясности приведу свой «ремейк»-скрипт: а где нужно подставляю следующее: Ответить
Попробуйте хранить значение выбранного языка в куки, и на каждой странице сверяться с ними.
Ок, спасибо. Попробую.
Это имя файла, например, lang_ru.ini
Получается весь контент сайта нужно переводить по слову? Это же коллосальная работа, а не проще ли параллельно создать несколько версий сайта и делать редирект с основной версии сайта с помощью header?
Здравствуйте Михаил. Я только недавно начал учить PHP Я ввел скрип как на вашем примере: но у меня в браузере выходит только «world!» Объясните пожалуйста, что не так? или может Вы ощиблись при вводе скрипта?
Михаил а возможна ли реализация чтения text.ini в tpl файлах?
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Copyright © 2010-2021 Русаков Михаил Юрьевич. Все права защищены.
Создание конфигурационного файла в PHP
Я хочу создать конфигурационный файл для моего проекта PHP, но я не уверен, что лучший способ сделать это.
у меня есть 2 идеи до сих пор.
1-Использовать Переменную
2-Используйте Const
3-Использовать Базу Данных
Я буду использовать конфигурацию в классах, поэтому я не уверен, какой способ будет лучшим или если есть лучший способ.
10 ответов:
один простой, но элегантный способ создать config.php файл (или как вы его называете), который просто возвращает массив:
использование INI-файла-это гибкое и мощное решение! В PHP собственной функции чтобы справиться с этим должным образом. Например, можно создать INI-файл следующим образом:
так что единственное, что вам нужно сделать, это позвонить:
важно: по соображениям безопасности INI-файл должен находиться в непубличной папке
Я использую небольшую эволюцию @hugo_leonardo ‘ s решение:
кроме того, если ваше приложение имеет конфигурации, которые вам нужны на стороне клиента (например, для углового приложения), вы можете иметь это config.php файл содержит все ваши конфигурации (централизованные в одном файле вместо одного для JavaScript и одного для PHP). Тогда трюк будет иметь другой PHP-файл что бы echo только информация на стороне клиента (чтобы избежать отображения информации, которую вы не хотите показывать как строку подключения к базе данных). Назовите это сказать get_app_info.php :
выше предполагая, что ваш config.php содержит элемент :
Я довольно удивлен принятым здесь ответом и количеством голосов, которые он получил. За исключением ответа Марсио Маццукато, нет никакого обсуждения относительных достоинств / недостатков любого из многочисленных подходов.
варианты, которые я вижу:
механизмы на основе файлов
Они требуют, чтобы ваш код искал в определенных местах, чтобы найти файл ini. Это трудная проблема для решения и тот, который всегда появляется в больших PHP-приложениях. Однако вам, вероятно, придется решить эту проблему, чтобы найти PHP-код, который будет включен / повторно использован во время выполнения.
общие подходы к этому-всегда использовать относительные каталоги или искать из текущего каталога вверх, чтобы найти файл, исключительно названный в базовом каталоге приложения.
общие форматы файлов, используемые для конфигурационных файлов являются PHP код, ini форматированные файлы, JSON, XML, YAML и сериализованные PHP
PHP-кода
The include_path предоставляет средство для абстрагирования потенциальных местоположений файла без использования дополнительного кода.
с другой стороны, одним из основная причина отделения конфигурации от кода заключается в разделении обязанностей. Он предоставляет маршрут для ввода дополнительного кода в среду выполнения.
если конфигурация создается из инструмента, возможно, можно проверить данные в инструменте, но нет стандартной функции для экранирования данных для встраивания в PHP-код, как существует для HTML, url, операторов MySQL, команд оболочки.
сериализованные данные Это относительно эффективно для малых объем конфигурации (до 200 элементов) и позволяет использовать любую структуру данных PHP. Для создания / анализа файла данных требуется очень мало кода (поэтому вы можете вместо этого потратить свои усилия на то, чтобы файл был написан только с соответствующим разрешением).
экранирование содержимого, записанного в файл, обрабатывается автоматически.
поскольку вы можете сериализовать объекты, он создает возможность для вызова кода просто путем чтения файла конфигурации (the __wakeup magic method).
структурированный файл
хранение его в виде INI-файла, как предложено Marcel или JSON или XML, также предоставляет простой api для отображения файла в структуру данных PHP (и, за исключением XML, для экранирования данных и создания файла), устраняя уязвимость вызова кода с помощью сериализованных данных PHP.
Он будет иметь аналогичные характеристики для сериализованных данных.
Edit: чтобы ответить на ваш комментарий-ни один из механизмов разбора не будет самым быстрым (ini, json и т. д.), но они также не являются частями вашего приложения, которые вам действительно нужно сосредоточиться на оптимизации, поскольку разница в скорости будет незначительной для таких небольших файлов.
обычно я в конечном итоге создаю один conn.php-файл, который имеет моего подключения к базе данных. Затем я включаю этот файл во все файлы, которые требуют запросов к базе данных.
Define сделает константу доступной везде в вашем классе без необходимости использовать global, в то время как переменная требует global в классе, я бы использовал DEFINE. но опять же, если параметры БД должны изменяться во время выполнения программы, вы можете придерживаться переменной.
вы можете создать класс конфигурации ведьма статические свойства
затем вы можете просто использовать это:
иногда в моих проектах я использую шаблон дизайна синглтон для доступа к данным конфигурации. Это очень удобно в использовании.
например у вас есть 2 источника данных в проекте. И вы можете выбрать ведьму из них есть включен.
где-то в конфигурационном файле вы выбираете:
при изменении источника всего приложения shoud переключиться на новый источник данных, работать нормально и не нужно менять код.
. и где-то в коде (например. в каком-то классе обслуживания):
Создание файла конфигурации в PHP
Я хочу создать конфигурационный файл для моего проекта PHP, но я не уверен, что лучший способ сделать это.
у меня есть 2 идеи до сих пор.
1-Использовать Переменную
2-Используйте Const
3-Использовать Базу Данных
Я буду использовать конфигурацию в классах, поэтому я не уверен, какой способ будет лучшим или если есть лучший способ.
10 ответов
один простой, но элегантный способ создать config.php файл (или как вы его называете), который просто возвращает массив:
использование INI-файла-это гибкое и мощное решение! В PHP собственная функция правильно ее обрабатывать. Например, можно создать INI-файл следующим образом:
поэтому единственное, что вам нужно сделать, это вызов:
важно: по соображениям безопасности INI-файл должен находиться не в общей папке
Я использую небольшую эволюцию @hugo_leonardo ‘ s решение:
кроме того, если ваше приложение имеет необходимые конфигурации на стороне клиента (например, для углового приложения), вы можете иметь это config.php файл содержит все ваши конфигурации (централизованные в одном файле вместо одного для JavaScript и одного для PHP). Тогда трюк будет иметь другой файл PHP что бы echo только информация на стороне клиента (чтобы не показывать информацию, которую вы не хотите показывать как строку подключения к базе данных). Назовите это say get_app_info.php :
выше предполагая, что ваш config.php содержит элемент :
Я довольно удивлен принятым ответом здесь и количеством полученных ответов. За исключением ответа Марсио Маццукато, не обсуждаются относительные достоинства / недостатки любого из многочисленных подходов.
варианты, которые я вижу:
Они требуют, чтобы ваш код искал в определенных местах, чтобы найти ini-файл. Это трудная проблема, которую нужно решить и которая всегда появляется в больших приложениях PHP. Однако вам, вероятно, придется решить проблему, чтобы найти PHP-код, который будет включен / повторно использован во время выполнения.
общие подходы к этому-всегда использовать относительные каталоги или искать из текущего каталога вверх, чтобы найти файл исключительно с именем в базовом каталоге приложения.
общие форматы файлов, используемые для конфигурационных файлов: PHP-код, ini-файлы, JSON, XML, YAML и сериализованные В PHP
PHP-кода
Это обеспечивает огромную гибкость для представления различных структур данных, и (предполагая, что он обрабатывается через include или require) анализируемый код будет доступен из кэша кода операции, что дает преимущество в производительности.
на в include_path предоставляет средство для абстрагирования потенциальных местоположений файла без использования дополнительного кода.
с другой стороны, одним из основные причины отделения конфигурации от кода-разделение обязанностей. Он предоставляет маршрут для ввода дополнительного кода во время выполнения.
если конфигурация создана из инструмента, возможно, можно проверить данные в инструменте, но нет стандартной функции для экранирования данных для встраивания в PHP-код, как существует для HTML, URLs, операторов MySQL, команд оболочки.
сериализованные данные Это относительно эффективно для малых объем конфигурации (до 200 элементов) и позволяет использовать любую структуру данных PHP. Для создания / анализа файла данных требуется очень мало кода (поэтому вы можете потратить свои усилия на обеспечение того, чтобы файл был написан только с соответствующей авторизацией).
экранирование содержимого, записанного в файл, обрабатывается автоматически.
поскольку вы можете сериализовать объекты, это создает возможность для вызова кода просто путем чтения файла конфигурации (the __wakeup magic method).
структурированный файл
сохранение его в виде INI-файла, как предложено Марселем или JSON или XML, также предоставляет простой api для отображения файла в структуру данных PHP (и за исключением XML, чтобы избежать данных и создать файл), устраняя уязвимость вызова кода с помощью сериализованных данных PHP.
Он будет иметь аналогичные характеристики для сериализованных данных.
редактировать: чтобы ответить на ваш комментарий-ни один из механизмов синтаксического анализа не будет самым быстрым (ini, json и т. д.), Но они также не являются частями вашего приложения, которые вам действительно нужно будет сосредоточиться на оптимизации, так как разница в скорости будет незначительной для таких небольших файлов.
обычно я в конечном итоге создаю один conn.php-файл с подключениями к базе данных. Затем я включаю этот файл во все файлы, требующие запросов к базе данных.
Define сделает константу доступной везде в вашем классе без необходимости использовать global, в то время как переменная требует global в классе, я бы использовал DEFINE. но опять же, если параметры БД должны изменяться во время выполнения программы, вы можете придерживаться переменной.
Если вы думаете, что по какой-либо причине будете использовать более 1 дБ, перейдите к переменной, потому что вы сможете изменить один параметр, чтобы переключиться на совершенно другую дБ. Т. е. для испытывать, autobackup, etc.
вы можете создать статические свойства ведьмы класса конфигурации
затем вы можете просто использовать это:
иногда в моих проектах я использую шаблон дизайна SINGLETON для доступа к данным конфигурации. Он очень удобен в использовании.
например у вас есть 2 источника данных в проекте. И ты можешь выбрать ведьму из них включен.
где-то в конфигурационном файле вы выбираете:
при изменении источника всего приложения shoud переключиться на новый источник данных, работать нормально и не нужно менять код.
. и где-то в коде (например. в каком-то сервисном классе):