【问题标题】:PHP 5.4+ alternative to set_magic_quotes_runtime [duplicate]PHP 5.4+ 替代 set_magic_quotes_runtime [重复]
【发布时间】:2020-04-10 09:04:00
【问题描述】:

我想从 PHP 5.4 迁移到 PHP 7...所以我检查了 PHP 5 和 PHP 7 之间的兼容性。我发现我的代码使用的函数已被弃用:get_magi_quotes_gpc_runtime()

既然文档没有推荐任何替代方案,那么还有什么选择?

【问题讨论】:

  • 请提供给定的错误。代码看起来还可以。这里的上下文很重要。
  • @Mulli 他想知道在 PHP 7 中用什么替换 get_magic_quotes_runtime,因为它已被弃用,并且文档没有说明用什么替换它。他没有必要发布错误,因为它已记录在案。
  • 您将其替换为 $magic_quotes = false;,因为它在 PHP 5.4 之后总是错误的。 stackoverflow.com/questions/61054418/… 的对话可能也与这里有关

标签: php


【解决方案1】:

根据PHP manual

$magic_quotes = false; 

【讨论】:

    【解决方案2】:

    php7 等价物是:

    $magic_quotes=false;
    

    magic_quotes 不再受支持。这从来都不是一个好主意,应尽可能避免。尽管如此,由于magic_quotes 基本上只是在$_GET / $_POST / $_COOKIE 中的所有内容上运行addslashes(),因此将其移植到现代php 并不是一项艰巨的任务,您可以在wordpress 框架中找到移植到现代PHP 的magic_quotes:@ 987654321@

    /**
     * Add slashes to a string or array of strings.
     *
     * This should be used when preparing data for core API that expects slashed data.
     * This should not be used to escape data going directly into an SQL query.
     *
     * @since 3.6.0
     *
     * @param string|array $value String or array of strings to slash.
     * @return string|array Slashed $value
     */
    function wp_slash( $value ) {
        if ( is_array( $value ) ) {
            foreach ( $value as $k => $v ) {
                if ( is_array( $v ) ) {
                    $value[ $k ] = wp_slash( $v );
                } else {
                    $value[ $k ] = addslashes( $v );
                }
            }
        } else {
            $value = addslashes( $value );
        }
    
        return $value;
    }
    

    耸耸肩

    【讨论】:

      猜你喜欢
      • 2016-08-26
      • 2020-09-20
      • 2014-08-30
      • 2013-07-06
      • 2017-01-08
      • 2013-08-01
      • 2013-02-09
      • 2013-09-22
      相关资源
      最近更新 更多