我设置了几个变量,例如:
$url = 'http://stackoverflow.com';
$tag1 = '#lorem1';
$tag2 = '#lorem2';
$tag3 = '#lorem3';
$tag4 = '#lorem4';
$tag5 = '#lorem5';
我想把它们组合成一个字符串。像这样:
$final = $url .' '. $tag1 .' '. $tag2...
但是,如果$final
字符串将超过140个字符,则不添加变量。
因此,例如,如果$final
字符串是137个字符,那么不要将$tag5
添加到连接变量字符串中,因为它的值将使其超过140个字符。
我该怎么做?
您必须编写一个像这样的简单循环:
$str = '';
foreach($parts as $part)
{
if(strlen($str.$part) >= 140)
{
break;
}
$str .= $part;
}
return $str;
让我们假设$array_name_str存储所有你提到的字符串
$nb_input = 0;
$final_str = '';
foreach($array_name_str ad $row)
{
$length_curr_str = strlen($row);
if( $length_curr_str > (140 - $nb_input))
break;
// We add the curr string
$final_str .= $row;
$final_str .= " ";
// Updating size of output str
$nb_input += $length_curr_str;
}
return $final_str;
这里有限制选项,可以在任何条件下随时使用;
function to_tag(array $tags, $limit = 140) {
$str = '';
foreach ($tags as $tag) {
$str .= ' '. trim($tag);
if (strlen($str) > $limit) {
$str = substr($str, 0, strrpos($str, ' '));
break;
}
}
return trim($str);
}
print_r(to_tag(['foo1', 'foo2', 'foo3'], 10)); // foo1 foo2