【问题标题】:Print only the first few characters [duplicate]仅打印前几个字符[重复]
【发布时间】:2018-11-19 13:06:29
【问题描述】:

您好,我有字符串变量,我只需要打印最多 100 个字符,但我想要点在末尾。所以我想要打印字符串的摘要,最好的情况是第 100 个字符,更坏的情况是第 99 辆车....

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

例如我想要什么

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

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

我该怎么做?

【问题讨论】:

  • 展示你的尝试。
  • 那个副本甚至几乎不正确@William
  • @WilliamPerron 这不是我的点问题的解决方案
  • @JordanS 我尝试了子字符串,但我不知道如何用点解决我的问题。
  • 你为什么用一个与 OP 所询问的内容甚至不接近的重复项来结束问题?

标签: php


【解决方案1】:

使用substr()

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

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

【讨论】:

  • 他们还说“如果字符串不是点,我想把它整个打印出来。
【解决方案2】:

您可以使用 substr 和 strrpos。
Substr 拆分字符串,strrpos 向后大海捞针。
我使用 substr 仅将 35 个字符传递给 strrpos 并让它找到前一个点。
然后我在 substr 从 0 -> 点 +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 返回错误。如果发生这种情况,我会给出 $pos 的全长 $str。

https://3v4l.org/YS7X7

【讨论】:

    猜你喜欢
    • 2012-08-05
    • 1970-01-01
    • 1970-01-01
    • 2020-09-14
    • 1970-01-01
    • 2016-06-30
    • 1970-01-01
    • 2017-02-02
    • 2015-02-04
    相关资源
    最近更新 更多