仅打印前几个字符

时间:2018-06-09 20:09:57

标签: php

嗨我有字符串变量,我需要打印最多100个字符,但我想要点结尾。所以我想要字符串的打印摘要,在最好的情况下将点像第100个字符,更糟糕的情况下第99个车....

如果字符串不是点,我想整个打印。

例如我想要什么

$longstring = "abcd. dasda. dsad.sd asd a."
$whaIWant = "abcd. dasda. dsad.sd asd a."

$longstring = "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef. abcdefabcdef"
$whaIWant = "abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef."

我怎么做?

2 个答案:

答案 0 :(得分:2)

您可以使用substr和strrpos Substr拆分一个字符串,strrpos向后找到一个大海捞针 我使用substr只将35个字符传递给strrpos并让它找到前一个点 然后我在0 - >的substr中使用它。点+1字符。

$str = "string with dot. And another. Again.";
// Full string is 36 characters

$n = 35; // in your case 100
$pos = strrpos(substr($str,0,$n), ".");
If($pos === false) $pos = strlen($str);
Echo substr($str,0, $pos+1);

编辑:忘了找不到点。
这使得strrpos返回false。如果发生这种情况,我给$ pos全长$ str。

https://3v4l.org/YS7X7

答案 1 :(得分:-1)

使用substr()

$bigString = 'this is my big string .... pretend this is a lot of chars'
$smallString = substr($bigString, 0, 100)

这只会在您在模板中使用它时返回前100个字符,您可以轻松地回显smallString并添加一个。最后