文字列を特定の文字数に最も近い文に切り捨て/短縮したい。
動作する関数がありますが、関数は代わりに、証明書の文字数に最も近い単語に切り捨てられます。
function shortenString($string, $your_desired_width) {
$parts = preg_split('/([\s\n\r]+)/', $string, null, PREG_SPLIT_DELIM_CAPTURE);
$parts_count = count($parts);
$length = 0;
$last_part = 0;
for (; $last_part < $parts_count; ++$last_part) {
$length += strlen($parts[$last_part]);
if ($length > $your_desired_width) { break; }
}
return implode(array_slice($parts, 0, $last_part));
}
例えば:
Lorem ipsum dolorは、amet、consecteturadipiscingelitに座ります。整数malesuadaeleifendorci、eget dignissim ligulaporttitorcursus。当たり障りのないエニムでPraesent。Maecenas vitaeeleifendest。Cumsociisnatoque penatibus et magnis dis parturient montes、nasceturridiculusmus。Maecenas pulvinargravidatempor。
次のように短縮する必要があります。
Lorem ipsum dolorは、amet、consecteturadipiscingelitに座ります。整数malesuadaeleifendorci、eget dignissim ligulaporttitorcursus。
このように文を壊す代わりに:
Lorem ipsum dolorは、amet、consecteturadipiscingelitに座ります。整数malesuadaeleifendorci、eget dignissim ligulaporttitorcursus。 でPraesent
ヘルプをいただければ幸いです。