Klávesové zkratky na tomto webu - rozšířené Na obsah stránky

Translate to English… Ins Deutsche übersetzen…

PHP triky: zjišťování ini_get

Interpretovat nastavení konfiguračních direktiv nemusí být vůbec snadné. V případě logických hodnot sice dokumentace tvrdí, že se vždy vrací 1, 0 nebo prázdný řetězec, ale není tomu tak v případě, že hodnotu nastavíme souborem .htaccess či httpd.conf a direktivou php_value:

php_value magic_quotes_gpc On

V takovém případě ini_get vrátí přímo řetězec On. Konfiguraci je proto lepší zjišťovat účelovou funkcí, jako je třeba get_magic_guotes_gpc(). V případě, že žádná funkce k dispozici není, můžete použít tuto:

/**
 * Gets the boolean value of a configuration option
 * @param string  configuration option name
 * @return bool
 */
function getDirective($directive)
{
    $val = strtolower(ini_get($directive));
    return $val === 'on' || $val === 'true'
        || $val === 'yes' || $val % 256;
}

if (getDirective('zend.ze1_compatibility_mode')) {
    // zend.ze1_compatibility_mode is ON
}

napsáno 1. 11. 2007 | shlédnuto 4079x | nahoru


Komentáře RSS 2.0 komentářů » přidat

#1 Jakub Vrána http://php.vrana.cz/ nový

Příznaky v .htaccess by se měly nastavovat direktivou php_flag. David to jistě ví a poukazuje na to, že se to často dělá i direktivou php_value, s kterou je třeba řešit uvedený problém. Takže pro toho, kdo to neví…

Posláno 1. 11. 2007 v 10.05 | Odpovědět
avatar

#2 Jan Tichý http://www.phpguru.cz/ nový

U toho reguláru v druhém případě se v některých případech může hodit testovat to obráceně – tedy taxativně vyjmenované off,false,no,0 – a vše ostatní je pravda. Ale záleží na konkrétní direktivě, občas se může hodit spoléhat se na defaultní pravdu, jindy naopak.

Posláno 1. 11. 2007 v 11.36 | Odpovědět
avatar

#3 David Grudl http://davidgrudl.com nový

ad obrácené testování: to by mě celkem zajímalo. Chování direktiv se mi totiž jeví tak, že nezávisle na jejím výchozím nastavení se po zkonfigurování nastaví na Off, a jen pokud výraz odpovídá uvedenému regulárnímu výrazu, nastaví se na On.

Posláno 1. 11. 2007 ve 14.02 | Odpovědět
Na komentář reagoval [5] Jakub Vrána
avatar

#4 David Grudl http://davidgrudl.com nový

Aktualizace: testovací výraz jsem upravil, aby respektoval:

php_value  magic_quotes_gpc  511  # on
php_value  magic_quotes_gpc  512  # off
Posláno 1. 11. 2007 ve 14.27 | Odpovědět

#5 Jakub Vrána http://php.vrana.cz/ nový

#3 David Grudl: Skutečně se bere výčet pravdivých hodnot, viz zend_ini.c.

Posláno 1. 11. 2007 v 16.20 | Odpovědět

Tento článek byl uzavřen. Už není možné k němu přidávat komentáře.

Výtah na začátek článku na první komentář

Názory čtenářů v diskusích nejsou názory provozovatele webu, a ten za jejich obsah neodpovídá.

phpFashion © 2004, 2012 David Grudlo webu

Pokud není uvedeno jinak, podléhá obsah těchto stránek licenci Creative Commons BY-NC-ND Creative Commons License BY-NC-ND

Ukázky zdrojových kódů smíte používat s uvedením autora a URL tohoto webu bez dalších omezení.