0

我有文字,例如:

$str = 'Hi there bla bla';

我对 $str 使用了 substr 函数

substr($str, 0 , 20);

我得到了全文,但如果我有更长的文本,可以说:

$str = "Hi there bla bla Hi there bla bla Hi there bla bla";
$substred = substr($str, 20, 21);

我以为我可以用

if ($substred) { echo "..."; };

但它不起作用..?

4

6 回答 6

4
  1. 始终检查,如果您要剥离的字符串有这 20 个字符以防止灾难
  2. 如果您检查,您可以轻松添加条件以添加...到您的字符串

代码:

if (strlen($string) > 20) {
   $string = substr($string, 0, 20) . "..."; }
于 2013-03-31T18:04:37.817 回答
0

你需要用这样的点来呼应完整的声明

$str = "Hi there bla bla Hi there bla bla Hi there bla bla";
$sentence = substr($str, 0, 21);
echo $sentence."....";
于 2013-03-31T18:04:20.440 回答
0

这是你要找的吗?您可能应该先计算它,然后回显结果。 http://codepad.org/OFo6MG6P

<?php
$str = 'Hi there bla bla';
echo 'Original: "'.$str.'", long one: "';
substr($str, 0 , 20);
$str = "Hi there bla bla Hi there bla bla Hi there bla bla";
$substred = substr($str, 20, 21);
if (strlen($str) > 20) { echo $substred."...\""; };
?>
于 2013-03-31T18:06:12.123 回答
0

我假设您想回显一个文本,但如果它太长,则只回显其中的一部分并添加“...”。这可能有效..

if (strlen("$txt")> 20){
   echo substr($txt,0,20)."...";
}
于 2013-03-31T18:07:20.143 回答
0

这不会直接回答问题,但如果字符串打算通过 HTML 显示,则可能很有用。它可以在 CSS 中通过使用值为 ellipsis 的样式属性 text-overflow 来完成。

$str

于 2013-03-31T18:21:39.930 回答
0

如果您希望它采用三元逻辑的内联形式

你可以这样做:

$string = "Hey, Hello World"
strlen($string) < 10 ? $string : substr($string, 0, 10) . '...';

输出:嘿,你好...

于 2018-10-10T06:18:30.753 回答