如何解决PHP:根据其长度拆分字符串
我使用4个部分来从内容中构建元标题。 现在,我想将元标题限制为55个字符,并从标题中切除部分内容。 但是我不想说一个字。相反,我想检查标题的长度,并从末尾删除部分内容,直到整个标题再次低于55。
例如,我使用以下部分:
-
$product_name
=产品名称-如 MacBook Pro -11 -
$product_brand
=品牌名称-如 Apple -5 -
$product_action
=产品名称-在线购买-9 -
$product_store
=产品名称-在商店名称上-9
这些都是 41个字符。所以一切都很好。
但是如果我有这样的内容( 75个字符):
Surface Pro X黑色64 GB,512 GB 5G / Wifi Microsoft在Storename上在线购买
我想将其简化为:
Surface Pro X黑色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语句效果不佳。
解决方法
这应该进行下去,它将在小于55个字符的长度处将字符串修剪为最接近的空格字符('')。
$i = strlen($product_title)-1;
while($product_title[$i] != ' ' || $i > 55){
$i--;
}
$final_string = substr($product_title,$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;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。