Проверьте, разрешено ли мне использовать ini_set
для некоторых option
, как?
ini_set
вернет старое значение при успехе и false
* при ошибке. Обладая этими знаниями, вы можете написать заявление, проверяющее, прошел ли ваш звонок, как показано ниже.
$result = ini_set ("some_option", "some_value");
$failure = (version_compare(PHP_VERSION, '5.3.0') >= 0) ? false : '';
if ($result === $failure)
echo "Unable to use ini_set to change 'some_option'!";
(*): обратите внимание, что возвращаемое значение изменилось в PHP 5.3.0 с ''
(пустая строка) на false
. Так что вам нужно проверить и текущую версию PHP.
Другой способ - использовать ini_get_all
, который предоставит вам подробную информацию о каждой доступной опции, и это уровень доступа .
$all_option_details = ini_get_all ();
/* see the comments in this post regarding PHP_INI_USER vs INI_USER
* seems like someone writing the relevant PHP documentation fcuked up
*
* props to @soulmerge */
if ($all_option_details['upload_max_filesize']['access'] & INI_USER)
echo "we are allowed to change upload_max_filesize from with ini_set!";
Я бы хотел отключить использование ini_set
для некоторых опций, как?
Существует несколько способов сделать параметры неизменяемыми во время выполнения (например, отключив ini_set
), среди них есть следующие два, о которых вы можете прочитать подробнее по предоставленной ссылке.
php_admin_value имя значение
Устанавливает значение указанной директивы. Это нельзя использовать в файлах .htaccess. Любой тип директивы, установленный с php_admin_value , не может быть переопределен с помощью .htaccess или ini_set (). Чтобы очистить ранее установленное значение, не используйте ничего в качестве значения.
1052 *
php_admin_flag имя включено | выключено
Используется для установки логической директивы конфигурации. Это нельзя использовать в файлах .htaccess. Любой тип директивы, установленный с помощью php_admin_flag , не может быть переопределен с помощью .htaccess или ini_set ().
Пример (взято из этой документации)
<IfModule mod_php5.c>
php_value include_path ".:/usr/local/lib/php"
php_admin_flag engine on
</IfModule>
<IfModule mod_php4.c>
php_value include_path ".:/usr/local/lib/php"
php_admin_flag engine on
</IfModule>