Включить parse_ini_file в .htaccess

#php #.htaccess

#php #.htaccess

Вопрос:

кто-нибудь знает, возможно ли включить функцию php parse_ini_file(), переопределяющую настройки php.ini в .htaccess? Если да, то как это можно сделать?

Спасибо всем за помощь

Комментарии:

1. Можете ли вы быть более конкретным? Что вы подразумеваете под «в .htaccess»? Чего вы пытаетесь достичь? Вы можете изменить некоторые настройки PHP во время выполнения с помощью ini_set . parse_ini_file предназначен для синтаксического анализа текстовых файлов произвольного формата INI, а не для настройки сервера в реальном времени.

2. Параметр ini не влияет parse_ini_file() напрямую.

3. Спасибо за ваш ответ. Я пытаюсь установить Joomla 1.6.1 на бесплатный хостинг, и если не удается, потому что parse_ini_file, вероятно, отключен в php.ini. Из-за того, что я не могу изменить php.ini, я узнал на некоторых веб-сайтах, что некоторые настройки php можно переопределить с помощью файла .htaccess. Итак, я спрашиваю, можно ли это сделать и как.

4. Странно. Пока вы не можете получить доступ к чужим файлам, я не вижу никаких проблем с безопасностью или производительностью parse_ini_file() . Вы можете спросить своего хостера, хотят ли они изменить ini для вас. По моему мнению, нет особого смысла отключать эту функцию. Начиная с версии 5.3 parse_ini_string() . Вы можете попробовать, работает ли эта функция в сочетании с file_get_contents() 🙂 (если у вас установлен php >= 5.3)

5. Я понимаю. Я попробую обратиться к хостеру. Я думаю, что другие пользователи сталкиваются с этой проблемой. Спасибо вам всем за помощь!

Ответ №1:

Если он был отключен с помощью disable_functions , вы не можете повторно активировать его с помощью .htaccess php_value директивы. См http://php.net/manual/en/ini.core.php

Ответ №2:

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

  1. Ваш хост отключил его по соображениям безопасности (:-?), используя директиву disable_functions.

  2. Вы указываете URL-адрес в $filename параметре, и ваш хост отключил загрузку или удаленные файлы с помощью директивы allow_url_fopen.

  3. Вы читаете файл *.ini, к которому у вас нет доступа.

В общем, все три случая подразумевают, что вам просто не разрешено это делать. Даже если вам удастся найти способ взлома и обойти ограничение, возможно, вы нарушаете условия использования вашего хостинга. Как бы то ни было, возможно, вы просто пытаетесь сделать что-то не то:

  • Локальные файлы могут быть прочитаны с диска, нет необходимости использовать HTTP.
  • Вы должны иметь возможность читать свои собственные файлы, учитывая, что им предоставлены соответствующие разрешения.

Ответ №3:

Я добавил копию php.ini в папку, в которую приложение хочет вызвать parse_ini_file() , и это помогло, но мой хостинг-провайдер «выделяет» файл php.ini в каталог, поэтому каждое приложение может использовать разные настройки.

В этом случае приложение жаловалось PHP function parse_ini_file is not available не потому, что метод был отключен, а потому, что оно не смогло найти php.ini для синтаксического анализа.