如何将 htmlentities 与子字符串一起使用

How to use htmlentities with substring

谁能解释为什么这个 substr 不起作用?我错过了什么?

<?= substr(htmlentities($movie->movie_name) , 0 , 10) ?>

您可能想要切换这些函数调用的顺序,如下所示:

<?= htmlentities(substr($movie->movie_name, 0, 10)); ?>

htmlentities 将特殊字符替换为 &lt;,例如 <。其中 < 只是 substr 函数的一个字符,&lt; 占用了 4 个空格。更糟糕的是,它可能会在中途被切断,你最终会得到 The big &l.

你的问题不完整。这不是很彻底。 让我帮忙。

  • 您使用 utf-8 而非英语:

          you should use mb_substr instead to support multibyte characters in utf-8
    
  • 检查您的 $movie->movie_name 是否为 null 或者不是您可以使用的字符串

    if($movie->movie_name !=null AND is_string($movie->movie_name)){

    echo substr(htmlentities($movie->movie_name) , 0 , 10);

    }else{

    echo 'no name!'

    }

正确的代码是:

<?= htmlentities(substr($movie->movie_name, 0, 10)) ?>