PHP:根据长度拆分字符串
PHP: Split string based on its length
我使用 4 个部分从我的内容构建元标题。
现在我想将元标题限制为 55 个字符并从标题中删除部分内容。
但我不想插话。相反,我想检查标题的长度并从末尾删除部分,直到整个标题再次低于 55 的限制。
我正在使用以下部分作为示例:
$product_name
= 产品名称 - 如 MacBook Pro - 11
$product_brand
= 品牌名称 - 如 Apple - 5
$product_action
= 产品名称 - 在线购买 - 9
$product_store
= 产品名称 - on Storename - 9
这些加起来是 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_action
和 product_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;
}
我使用 4 个部分从我的内容构建元标题。 现在我想将元标题限制为 55 个字符并从标题中删除部分内容。 但我不想插话。相反,我想检查标题的长度并从末尾删除部分,直到整个标题再次低于 55 的限制。
我正在使用以下部分作为示例:
$product_name
= 产品名称 - 如 MacBook Pro - 11$product_brand
= 品牌名称 - 如 Apple - 5$product_action
= 产品名称 - 在线购买 - 9$product_store
= 产品名称 - on Storename - 9
这些加起来是 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_action
和 product_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;
}