Расширение не имеет никакого значения. Существуют незначительные различия между COMMAND.COM, обрабатывающим файл по сравнению с CMD.EXE
Только magic_quoted_runtime можно отключить во время выполнения. Но magic_quotes_gpc нельзя отключить во время выполнения ( PHP_INI_ALL можно изменить до версии PHP 4.2.3, с тех пор PHP_INI_PERDIR ); их можно только удалить:
if (get_magic_quotes_gpc()) {
$process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
while (list($key, $val) = each($process)) {
foreach ($val as $k => $v) {
unset($process[$key][$k]);
if (is_array($v)) {
$process[$key][stripslashes($k)] = $v;
$process[] = &$process[$key][stripslashes($k)];
} else {
$process[$key][stripslashes($k)] = stripslashes($v);
}
}
}
unset($process);
}
Для получения дополнительной информации см. Отключение Magic Quotes .
Волшебные кавычки нельзя отключить во время выполнения, но вы можете использовать файл .htaccess в каталоге, чтобы отключить его.
php_flag magic_quotes_gpc off
Единственное реальное преимущество, которое у этого есть, - вы можете поместить его один раз в каталог, и он работает для всего каталога и подкаталогов. Очень хорошо, если вам это нужно для приложения, которое вы не писали, и вам нужно заставить его работать без волшебных кавычек.
У меня есть небольшой сценарий, похожий на сценарий Гамбо (но, конечно, мой мне нравится больше :):
if(function_exists('get_magic_quotes_runtime') && get_magic_quotes_runtime())
set_magic_quotes_runtime(false);
if(get_magic_quotes_gpc()) {
array_stripslashes($_POST);
array_stripslashes($_GET);
array_stripslashes($_COOKIES);
}
function array_stripslashes(&$array) {
if(is_array($array))
while(list($key) = each($array))
if(is_array($array[$key]))
array_stripslashes($array[$key]);
else
$array[$key] = stripslashes($array[$key]);
}
Другой Решение для PHP 5.3 +:
if (get_magic_quotes_gpc() === 1)
{
$_GET = json_decode(stripslashes(preg_replace('~\\\(?:0|a|b|f|n|r|t|v)~', '\\\$0', json_encode($_GET, JSON_HEX_APOS | JSON_HEX_QUOT))), true);
$_POST = json_decode(stripslashes(preg_replace('~\\\(?:0|a|b|f|n|r|t|v)~', '\\\$0', json_encode($_POST, JSON_HEX_APOS | JSON_HEX_QUOT))), true);
$_COOKIE = json_decode(stripslashes(preg_replace('~\\\(?:0|a|b|f|n|r|t|v)~', '\\\$0', json_encode($_COOKIE, JSON_HEX_APOS | JSON_HEX_QUOT))), true);
$_REQUEST = json_decode(stripslashes(preg_replace('~\\\(?:0|a|b|f|n|r|t|v)~', '\\\$0', json_encode($_REQUEST, JSON_HEX_APOS | JSON_HEX_QUOT))), true);
}
обрабатывает клавиши, значения и многомерные массивы.