我正在编写一组
PHP脚本,这些脚本将在一些不同的设置中运行,其中一些使用魔术报价(恐怖)共享主机.没有控制PHP或Apache配置的能力,我可以在脚本中执行任何操作以在运行时禁用PHP引号吗?
如果代码没有假设使用魔术引号,那么我可以在不同的主机上使用相同的脚本,这些脚本可能或可能没有魔术引号.
只有
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);
}
详情请参阅Disabling Magic Quotes.