Php 取一个随机字符串,使其包含155个字符,以最近的单词结尾
我正在构建一个系统来为元标记创建动态描述。它将页面上的帖子输入到一个函数中,该函数将所有不必要的内容剔除,然后让strlen看到它太大,并创建一个单词列表。现在,我需要删除适当数量的单词,将字符串减少到155个字符或152个字符,并添加一个省略号 示例字符串(所有这些都不是实际代码,而是用于sudo代码的代码)Php 取一个随机字符串,使其包含155个字符,以最近的单词结尾,php,strlen,Php,Strlen,我正在构建一个系统来为元标记创建动态描述。它将页面上的帖子输入到一个函数中,该函数将所有不必要的内容剔除,然后让strlen看到它太大,并创建一个单词列表。现在,我需要删除适当数量的单词,将字符串减少到155个字符或152个字符,并添加一个省略号 示例字符串(所有这些都不是实际代码,而是用于sudo代码的代码) $string=“你好,可爱的Solia Avatar社区,我有一个小问题,我需要你的帮助。我以前有绘画工具SAI,但我的笔记本电脑吃掉了我的很多文件,其中一个是SAI。现在我正试图找回
$string=“你好,可爱的Solia Avatar社区,我有一个小问题,我需要你的帮助。我以前有绘画工具SAI,但我的笔记本电脑吃掉了我的很多文件,其中一个是SAI。现在我正试图找回它,但我丢失了我从中获得它的网站。我一直在寻找一个网站,以大约70美元的价格购买它。”代码>
echo strlen($string)代码>=296
if(strlen($string) > 155) {
// Get word amount
$words = preg_split('/\s+/', ltrim($string), 155 + 1);
}
现在,我有一个数组中的单词,我需要把数组中的单词总数降到155个,停在最近的单词处,不要笨拙地打断它。也许我试图错误地解决这个问题,我需要使用一组不同的函数。基本思想是在前155个字符之后找到第一个空格的位置。这可以通过strpo($string,,,155)
实现。然后使用substr($string,0,$endat155)
检索从开始到该位置的字符串部分
$endat155 = strpos($string, ' ', 155);
$firstWords = substr($string, 0, $endat155);
echo $firstWords;
可能重复感谢布雷特。我希望有一个不同的解决方案,而不做for循环来计数字符。这似乎过于简单化了。我测试了那个被接受的答案,它返回的长度将高于期望的长度。