ini_set

(PHP 4, PHP 5)

ini_set Установка значения настройки конфигурации

Описание

string ini_set ( string $varname , string $newvalue )

Устанавливает значение заданной настройки конфигурации. Настройка будет хранить установленное значение пока выполняется скрипт. После завершения работы скрипта значение настройки вернется к исходному.

Список параметров

varname

Не все доступные настройки можно изменять функцией ini_set(). Список доступных настроек приведен в приложении.

newvalue

Новое значение настройки.

Возвращаемые значения

В случае успеха возвращает старое значение, в случае неудачи возвращает FALSE.

Примеры

Пример #1 Установка значения ini настройки

<?php
echo ini_get('display_errors');

if (!
ini_get('display_errors')) {
    
ini_set('display_errors''1');
}

echo 
ini_get('display_errors');
?>

Смотрите также

Коментарии

[[[Editors note: Just because you're able to set something 
doesn't mean it will work as expected.  Depends on the 
setting.  For example. setting register_globals at 
runtime will be of little use as its job has already 
been completed by the time it reaches your script.
]]]

When a setting can not be changed in a user script, the return value of ini_set is "empty", not "false" as you may expect.
If you check in your script for return value is "false" the script will continue processing, although the setting has not been set.
The boolean return value is used for settings that can be changed in a script. Otherwise the empty value is returned.
To test for both error conditions use:

<?php
if (empty($blnResult) or (!$blnResult)) {
   echo 
"setting cannot be set";
   exit;
}
?>
2002-03-13 20:13:49
http://php5.kiev.ua/manual/ru/function.ini-set.html
[[[Editors note: Yes, this is very true.  Same with 
register_globals, magic_quotes_gpc and others.
]]]

Many settings, although they do get set, have no influence in your script.... like upload_max_filesize will get set but uploaded files are already passed to your PHP script before the settings are changed.

Also other settings, set by ini_set(), may be to late because of this (post_max_size etc.).
beware, try settings thru php.ini or .htaccess.
2002-06-12 13:04:45
http://php5.kiev.ua/manual/ru/function.ini-set.html
If it's not your server and therefore you want to hide the data in your session variables from other users, it�s very useful to set the session.save_handler in your scripts to shared memory with:

<?php ini_set('session.save_handler','mm'); ?>

Remember: You have to set it in every script that uses the session variables BEFORE "session_start()" or php won't find them.
2002-09-29 23:26:51
http://php5.kiev.ua/manual/ru/function.ini-set.html
While this doesn't belong in the manual, it should be useful for people looking on this page for zend_optimizer.* ini options, which are commonly installed:

Information on the "zend_optimizer.optimization_level" and "zend_optimizer.enable_loader" options is available at:

http://www.zend.com/support/user_docs/ZendOptimizer/PDF/ZendOptimizer_UserGuide.pdf
2004-08-13 21:54:28
http://php5.kiev.ua/manual/ru/function.ini-set.html
Автор:
When your ISP does not allow you to add the default include directories - it might be useful to extend the 'include_path' variable:

<?php ini_set('include_path',ini_get('include_path').':../includes:');  ?>
2006-01-10 13:30:55
http://php5.kiev.ua/manual/ru/function.ini-set.html
Автор:
set PHP_INI_PERDIR settings in a .htaccess file with 'php_flag' like this:

php_flag register_globals off
php_flag magic_quotes_gpc on
2006-03-31 16:36:55
http://php5.kiev.ua/manual/ru/function.ini-set.html
Be careful with setting an output_handler, as you can't use ini_set() to change it. *sigh*

In my php.ini I have this for my web pages (and I want it): 

  output_handler = ob_gzhandler

But this causes my command line scripts to not show output until the very end.

#!/usr/bin/php -q
<?php
ini_set
('output_handler''mb_output_handler');
echo 
"\noutput_handler => " ini_get('output_handler') . "\n";
?>

root@# ./myscript.php
output_handler => ob_gzhandler

Apparently (acording to Richard Lynch):

> TOO LATE!
> The ob_start() has already kicked in by this point.
> ob_flush() until there are no more buffers.
2006-10-30 19:19:25
http://php5.kiev.ua/manual/ru/function.ini-set.html
Автор:
Careful - in some cases, when setting zlib.output_compression to "On" via ini_set, PHP won't send the Content-type header and browsers will garble the output. Set it to the desired buffer size instead, which sends the correct header:

<?php
ini_set
("zlib.output_compression"4096);
?>
2011-11-08 22:56:50
http://php5.kiev.ua/manual/ru/function.ini-set.html
Автор:
Note that this function only works with PHP_INI_ALL options!
2014-08-10 07:30:14
http://php5.kiev.ua/manual/ru/function.ini-set.html
Автор:
I have experienced on some systems that ini_set() will fail and return a false, when trying to set a setting that was set inside php.ini inside a per-host setting. Beware of this.
2014-09-17 14:32:54
http://php5.kiev.ua/manual/ru/function.ini-set.html
Автор:
if u receive  an Error with generic like  :
Maximum execution time of 30 seconds exceeded 

if u set ini_set(max_execution_time, 300);
your problem will be solved 
pls note that the 300 , is 300 seconds , which means 5 minute  you can set another value !
2015-11-13 09:44:56
http://php5.kiev.ua/manual/ru/function.ini-set.html
When checking for the success of ini_set(), keep in mind that it will return the OLD value upon success - which may have been "0". Therefore you cannot just compare the return value - you have to check for "identity":

<?php

// This will NOT determine the success of ini_set(), instead
// it only tests if the old value had been equivalent to false
if ( !ini_set'display_errors''1' ) ) 
    throw new 
\Exception'Unable to set display_errors.' );

// This is the CORRECT way to determine success
if ( ini_set'display_errors''1' ) === false 
    throw new 
\Exception'Unable to set display_errors.' );   

?>

This explains reported situations where ini_set() "always" seems to fail!
2017-07-28 02:29:02
http://php5.kiev.ua/manual/ru/function.ini-set.html
In order to change zend.assertions or assert.exception values, try with the ini_set() function but be aware that it may fail.

Example:
<?php
$ret 
= @ini_set('zend.assertions''1');
if (
$ret === false) echo 'ini_set() failed before line '__LINE__PHP_EOL;
2022-01-14 12:48:16
http://php5.kiev.ua/manual/ru/function.ini-set.html

    Поддержать сайт на родительском проекте КГБ