【问题标题】:PHP Warning: ltrim() Problem in WordPress (formatting.php)PHP 警告:WordPress 中的 ltrim() 问题(formatting.php)
【发布时间】:2021-05-17 12:43:19
【问题描述】:

我正在用 shell 写这个;

sudo tail -100 /var/log/apache2/error.log

而且,我看到了这个;

......

[Sun Feb 14 09:42:06.873076 2021] [php7:warn] [pid 1968] [client 82.222.237.83:36955] PHP 警告:ltrim() 期望参数 1 是字符串,对象在 /var/ 中给出www/html/wp-includes/formatting.php 第 4314 行

[Sun Feb 14 09:42:06.873149 2021] [php7:warn] [pid 1968] [client 82.222.237.83:36955] PHP 警告:ltrim() 期望参数 1 为字符串,对象在 /var/ 中给出www/html/wp-includes/formatting.php 第 4314 行

...

我去看看相关代码。 --> /var/www/html/wp-includes/formatting.php 4314行

function esc_url( $url, $protocols = null, $_context = 'display' ) {
    $original_url = $url;

    if ( '' === $url ) {
        return $url;
    }

    $url = str_replace( ' ', '%20', ltrim( $url ) );
    $url = preg_replace( '|[^a-z0-9-~+_.?#=!&;,/:%@$\|*\'()\[\]\\x80-\\xff]|i', '', $url );

    if ( '' === $url ) {
        return $url;
    }

    if ( 0 !== stripos( $url, 'mailto:' ) ) {
        $strip = array( '%0d', '%0a', '%0D', '%0A' );
        $url   = _deep_replace( $strip, $url );
    }

    $url = str_replace( ';//', '://', $url );

在线 4314;

$url = str_replace( ' ', '%20', ltrim( $url ) );

我不明白。我的错误页面充满了这个。尽管我进行了研究,但我无法弄清楚。你能帮帮我吗?

注意:Ubuntu 20.04,Wordpress

健康的日子, 最好的问候。

【问题讨论】:

  • 该函数是用一个对象调用的,而不是用一个字符串调用的……但是,这里看不到它是如何调用的……
  • this 可能有帮助
  • 但是,我没有使用与link 内容相关的 Pods wordpress 插件。另外,不幸的是我无法完全阅读解决方案。写得很复杂。 @berend

标签: php wordpress ubuntu error-handling


【解决方案1】:

函数 esc_url() 使用 $url 调用,该 $url 是对象而不是字符串。您可以使用 gettype() 或 print_r() 来确认。 debug_backtrace() 可能有助于确定您从哪里进行这些调用。

【讨论】:

    猜你喜欢
    • 2021-04-03
    • 2018-02-11
    • 1970-01-01
    • 2021-09-14
    • 2020-04-11
    • 1970-01-01
    • 2012-12-23
    • 2019-06-21
    • 1970-01-01
    相关资源
    最近更新 更多