PHP字符串截取新方法:不破坏单词的截断技巧

创始人
2024-12-26 12:11:36
0 次浏览
0 评论

php截取字符

结论:在PHP开发中,如果你需要截取字符串而不断字,那么手册中推荐的mb_strimwidth()函数并不能满足你的期望。
开发者实现了自己的方法,利用`wordwrap()`函数来分割单词并计算长度,以达到拦截的目的。
下面是一个直观的实现过程。
当我需要在项目中准确截取字符串而不破坏单词时,我尝试了PHP手册中的mb_strimwidth()函数,但失败了。
所以,虽然有一些问题,我还是自定义了功能。
该函数的原理是首先使用wordwrap()函数将字符串分割成单词,然后使用mb_strlen()计算单词长度,直到达到设定的截距长度即可。
让我们用一个例子来看看这个过程:原始字符串:$str='readonlythisbooleanattributesthattheusercannotmodifythevalueofthecontrol.Disabledattribute,readonlyattributedoesnotPreventtheuserfromclickingorelectinginthecontrol.longgeblog'sThevalueofaread-onlycontrolisstillsubscribedwiththeform.'拦截:echowordcut($str,100);该函数的代码主要用于截取英文字符串。
它会被翻译成文,但你可以调整它以兼容:phpfunctionwordcut($stringg,$cutlength=250,$replace='...'){if(mb_strlen($string)<=$cutlength){返回$string;}else{$totalLength=0;$newwords=[];$wrap=wordwrap($string,1,"t");$wraps=explode("t",$wrap);foreach($wrapsas$tmp){$newwords[]=$tmp;$totalLength+=mb_strlen($tmp);if($totalLength>=$cutlength){break;}}$str=trim(implode("",$newwords));returnempty($str)?$str:$str.''.$replace;}}如果单词未超过指定长度,则此函数将保持单词原样;如果超过指定长度,则以省略号结尾。
现在的小问题是`$cutlength`不是实际长度,它忽略空格的长度,并在单词总长度达到这个值时停止。
实际使用中会考虑进一步优化。

php截取字符串

这个问题我已经回答过很多次了:/*截取给定长度的完整汉字*/functioncnsubstr($str,$strlen=10){if(empty($str)||!is_numeric($strlen)){returnfalse;}if(strlen($str)<=$strlen){return$str;}//获取字符$length并判断是否为非中文//直接返回长字符串$length$last_word_needed=substr($str,$strlen-1,1);if(!ord($last_word_needed)>128){$needed_sub_sentence=substr($str,0,$strlen);return$needed_sub_sentence;}else{for($i=0;$i<$strlen;$i++){if(ord($str[$i])>128){$i++;}}//endofffor$needed_sub_sentence=substr($str,0,$i);return$needed_sub_sentence;}}直接调用此函数就是这样。
热门文章
1
C语言字符串常量解析:区别、用途及存储方... 什么是字符串常量字符串常量是C语言中的一种数据类型,它是由一对双引号括起来的字符...

2
C语言printf函数:格式字符串与输出... printf函数中的格式与输出项有什么关系?在C语言中,printf函数中的格式...

3
Excel技巧:计算字符串起始位置与合并... 如何计算字符串在特定文本中的起始位置,怎么计算字符串在特定文本中的起始位置您可以...

4
Python发音全解:掌握正确的发音方法... python怎么读我的很多学习编程的朋友可能都知道Python这个词,但是他们中...

5
字符与字符串:编程中的基础文本类型解析 字符串什么意思字符串是由数字、字母和下划线组成的字符串,表示为s=“a1a2…a...

6
Python编程语言:多领域应用与开发优... Python的作用是什么?Python是一种跨平台计算机编程语言,是ABC语言的...

7
深度解析:C语言编程特点与应用领域 什么叫c语言C语言是一种编程语言。C编程语言应用广泛,具有以下特点和特点:1.语...

8
Java全解析:跨平台编程语言的魅力与多... java是什么Java是一种功能强大的编程语言,被称为“一次编写,随处运行”模型...

9
C语言printf输出常量类型与格式详解 C语言中如何输出各种常量?C语言的输出常量和输出变量是相同的。可以使用带有各种格...

10
Python发音指南:英式美式发音差异及... python怎么发音python的发音和注释如下:python英文[?pa?θ?...