我正在编写一组
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.