优雅的将中文(中英混合)字符串裁剪为长度范围内的句子,主要用于大段文字分页、分局等场景。
主要解决2痛点:
- 中英文混合字符串常规的裁剪无非是按字数(长度)裁剪,或者按段落、标点等特征值裁剪.无法【优雅】的裁剪出合适字数(长度)的整句句子。
- 中英文混合的字符串,由于编码方式原因,常规裁剪方法,无法【优雅】的中文按单个汉字,英文按单词进行统计长度和裁剪.
优雅的处理结果:
- 按规定的长度,进行整句字符串裁剪,默认会根据中文标点进行整句判断,尽量不断句、不裁剪英文单词。
- 带有分段(换行)的字符串,可以自行决定保留原分段,还是无视分段,重新合并裁剪。
- 整句判断标识(默认中文标点符号)、段落处理、采集长度等均可自定义。
$ composer require wangqs/cut_elegant_string
常规用法:
$config = [
'endMark' => [ '。' , '?' , '!' ] ,
'length' => 150
];
$cut = new StringCut( $config );
echo $cut->get('你的长字符串...')->toArray();
静态方法:
echo StringCut::init()
->length( 150 )
->get('你的长字符串...')
->toJson();
各参数可通过链式调用自定义:
$result = StringCut::init()
->paragraph( false ) // 是否保持原段落,默认false
->endMark( '。' ) //整句判断标识,默认中文标点 ['。' , '?' , '!']
->length( 100 )//裁剪长度,默认120
->offset( 0.2 )//最大可偏移量,默认0.2(满足整句裁剪需求)
->get( '你的长字符串...' )
->toArray() );
MIT