新兴技术

PHP:使用strrpos摘录单词

如果您使用的是PHP,并且只想显示源文本的摘录,然后将其截断为多个字符,那么如果摘录在字符串中间,则摘录可能会很难看。 我必须编写一个函数在ASP和ASP.NET中执行此操作,该函数基本上从最后一个字符开始循环返回以找到最后一个空格,并在此处切断它。 有点讨厌和一点点矫kill过正。 您实际上可以在我的家里看到它 有关详细信息,请查看此页面。 我只提供前500个字符。

今天,我已经准备好使用PHP开发相同的功能,但是(通常)发现PHP已经具有可以执行此功能的功能, Strrpos.

旧代码将从第一个字符到所需的最大字符数($ maxchars)包含一个子字符串($ content):

$ content = substr($ content,0,$ maxchars); echo $ content;

新代码:

$ content = substr($ content,0,$ maxchars); $ pos = strrpos($ content,“”); 如果($ pos> 0){$ content = substr($ content,0,$ pos); } echo $ content;

因此,新代码首先会在您要查找的字符数限制处切断内容。 但是,下一步是在内容中查找最后一个空格(“”)。 $ pos会变成那个位置。 现在,我简单地通过询问$ pos> 0来确保内容中确实有一个空格。 如果没有,它将按照我要求的字符数切断内容。 如果有任何空间,它将在该空间优雅地切断我的内容。

这是结合使用最大字符数和截断单词的一种好方法。 希望你喜欢!

而且我敢肯定,我会确定是否有一个ASP.NET函数可以做到这一点……我找不到一个。

Douglas Karr

Douglas Karr 是...的创始人 Martech Zone 以及公认的数字化转型专家。 Douglas 帮助创办了几家成功的 MarTech 初创公司,协助对超过 5 亿美元的 MarTech 收购和投资进行尽职调查,并继续推出他自己的平台和服务。 他是 Highbridge,一家数字化转型咨询公司。 道格拉斯还是一本傻瓜指南和商业领导力书籍的出版作者。

相关文章

7条评论

  1. 如果 $content 最初比 $maxchars 短,则编写的代码仍会从右到左查找空格并删除最后一个单词。 您可以在 $content 的末尾连接一个空格,或者执行 if (strlen()...)

  2. 这似乎是一个函数(解决前面的评论):

    函数 showexcerpt($content, $maxchars) {

    if (strlen($content) > $maxchars) {

    $content= substr($content, 0, $maxchars);
    $pos = strrpos($content, " ");

    如果 ($pos>0) {
    $content = substr($content, 0, $pos);
    }

    返回 $ 内容。 “……”;

    } {

    返回$ content;

    }

    }

你觉得呢?

本网站使用Akismet来减少垃圾邮件。 了解您的数据如何处理.