PHP:根据长度拆分字符串

PHP: Split string based on its length

我使用 4 个部分从我的内容构建元标题。 现在我想将元标题限制为 55 个字符并从标题中删除部分内容。 但我不想插话。相反,我想检查标题的长度并从末尾删除部分,直到整个标题再次低于 55 的限制。

我正在使用以下部分作为示例:

这些加起来是 41 个字符。所以一切都很好。

但是如果我有这样的东西(75 个字符):

Surface Pro X black 64 GB, 512 GB 5G/Wifi Microsoft buy online on Storename

我想将其缩减为:

Surface Pro X black 64 GB, 512 GB 5G/Wifi Microsoft

因为这是 55 个字符 以内的标题。 我删除了 product_actionproduct_store.

目前我正在使用组合字符串并计算字符数:

$product_title          = $product_name.' '.$product_brand.' '.$product_action.' '.$product_store;
$product_title_count    = strlen($product_title);

有没有智能的方法来生成这样的标题? 目前,我使用的 if/else 语句效果不佳。

这应该可以,它会trim 你的字符串在最接近的 space 个字符(' ')处,长度不超过 55 个字符。

$i = strlen($product_title)-1;
while($product_title[$i] != ' ' || $i > 55){
    $i--;
}
$final_string = substr($product_title, 0, $i);

把它放在@Agnohendrix 的代码之前

$product_title          = $product_name.' '.$product_brand.' '.$product_action.' '.$product_store;
$product_title_count    = strlen($product_title);

if($product_title_count > 55){
    $product_title          = $product_name.' '.$product_brand.' '.$product_action;
    $product_title_count    = strlen($product_title);
}
elseif($product_title_count > 55){
    $product_title          = $product_name.' '.$product_brand;
}