如何在php中替换已弃用的set_magic_quotes_runtime?

问题描述 投票:56回答:10

当我尝试运行我必须使用但不写的PHP脚本时,我收到此消息。

Deprecated: Function set_magic_quotes_runtime() is deprecated in /opt/lampp/htdocs/webEchange/SiteWeb_V5/inc/fpdf.php on line 1810

这是第1810行:

set_magic_quotes_runtime(0);

如果这是一个已弃用的函数,我可以用它替换它?

非常感谢你!

php deprecated
10个回答
68
投票

检查它是否在第一个。这应该摆脱警告,它将确保如果您的代码在旧版本的PHP上运行,那么魔术引号确实是关闭的。

不要像其他人建议的那样删除那行代码,除非你可以100%确定在PHP 5.3之前代码永远不会运行。

<?php
// Check if magic_quotes_runtime is active
if(get_magic_quotes_runtime())
{
    // Deactivate
    set_magic_quotes_runtime(false);
}
?>

PHP 5.3中不推荐使用get_magic_quotes_runtime。 资料来源:http://us2.php.net/get_magic_quotes_runtime/


0
投票

在PHP 7中我们可以使用:

ini_set('magic_quotes_runtime', 0);

而不是set_magic_quotes_runtime(0);


20
投票

我使用FPDF v.1.53并且由于可能的副作用而不想升级。我根据Yacoby使用了以下代码:

1164行:

if (version_compare(PHP_VERSION, '5.3.0', '<')) {
    $mqr=get_magic_quotes_runtime();
    set_magic_quotes_runtime(0);
}

1203行:

if (version_compare(PHP_VERSION, '5.3.0', '<')) {
    set_magic_quotes_runtime($mqr);
}

6
投票

由于Magic Quotes现在默认关闭(并计划删除),您只需从代码中删除该函数调用即可。


5
投票
ini_set('magic_quotes_runtime', 0)

我猜。


4
投票

您无需替换任何东西。设置magic_quotes_runtimeremoved in PHP6所以函数调用是不需要的。如果你想保持向后兼容性,将它包装在使用phpversion检查version_compare的if语句中可能是明智的


4
投票

升级到FPDF 1.6版。


2
投票

Gust在函数前添加前缀“@”为@set_magic_quotes_runtime(0);在PHP 5.4中不再支持,并且不删除或禁用该功能


1
投票

将这些代码添加到脚本的顶部以解决问题

@set_magic_quotes_runtime(false);
ini_set('magic_quotes_runtime', 0);

0
投票

更新此功能:

if (version_compare(PHP_VERSION, '5.3.0', '<')) {
  set_magic_quotes_runtime(0);
}
else {
  ini_set('magic_quotes_runtime', 0);
}
$magic_quotes = get_magic_quotes_runtime();
$file_buffer = fread($fd, filesize($path));
$file_buffer = $this->EncodeString($file_buffer, $encoding);
fclose($fd);
if ($magic_quotes) {
  if (version_compare(PHP_VERSION, '5.3.0', '<')) {
    set_magic_quotes_runtime($magic_quotes);
  }
  else {
    ini_set('magic_quotes_runtime', $magic_quotes);
  }
}

return $file_buffer;
© www.soinside.com 2019 - 2024. All rights reserved.