Проверьте, разрешено ли мне использовать 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
, который предоставит вам подробную информацию относительно каждой опции доступны, и это access level.
$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(). Чтобы очистить ранее установленное значение, используйте значение не как значение.
php_admin_flagимя на | от
Используется для установки булевой директивы конфигурации. Это невозможно использовать в файлах .htaccess. Любой тип директивного набора с php_admin_flag нельзя переопределить .htaccess или ini_set().
Пример (из this документации)
<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>
Blocking? кто изменит настройки ini на вашем сервере? –
Думаю, вы не можете их заблокировать. Параметры, которые вы можете установить во время выполнения, могут быть установлены. – djot
читайте этот комментарий: http://www.php.net/manual/en/function.in-set.php#30424 – yasar