注意:我不能使用中断或下一行功能,因为我正在使用FPDF
我遇到了php字符串的问题。我有一个字符串,我想在第一行显示最多12个字符,并保持在第二行。所以基本上我想把字符串分成两部分并分配给两个变量,以便我可以打印这两个变量。我试过以下代码: -
if($length > 12)
{
$first400 = substr($info['business_name'], 0, 12);
$theRest = substr($info['business_name'], 11);
$this->Cell(140,22,strtoupper($first400));
$this->Ln();
$this->Cell(140,22,strtoupper($theRest));
$this->Ln();
}
但是使用这个我得到如下所示:
Original String : The Best Hotel Ever
Output :
The Best Hot
Tel Ever
这是打破一个字,我不想打破这个词,只是检查长度,如果在12个字符内所有单词都已完成,则在下一行打印下一个单词。像这样:
Desired OutPut:
The Best
Hotel Ever
有什么建议吗?
答案 0 :(得分:1)
我没有看到内置函数,但是你可以在空格上爆炸,并重新构建你的字符串,直到下一个单词的长度超过12,其他一切都进入第二部分:
$string = 'The Best Hotel Ever';
$exp = explode(' ', $string);
if (strlen($exp[0]) < 12) {
$tmp = $exp[0];
$i = 1;
while (strlen($tmp . ' ' . $exp[$i]) < 12) {
$tmp .= " " . $exp[$i];
$i++;
}
$array[0] = $tmp;
while (isset($exp[$i])) {
$array[1] .= ' ' . $exp[$i];
$i++;
}
$array[1] = trim($array[1]);
} else {
$array[0] = '';
$array[1] = trim(implode (' ', $exp));
}
var_dump($array);
// Output : array(2) { [0]=> string(8) "The Best" [1]=> string(10) "Hotel Ever" }
// $string1 = 'The';
// array(2) { [0]=> string(3) "The" [1]=> string(0) "" }
// $string2 = 'Thebesthotelever';
// array(2) { [0]=> string(0) "" [1]=> string(16) "Thebesthotelever" }
答案 1 :(得分:0)
我对PHP不太热,但它似乎是一个简单的例子,你要访问的字符串中的哪个元素在你想要的位置之外:
尝试:
if($length > 12)
{
$first400 = substr($info['business_name'], 0, 8);
$theRest = substr($info['business_name'], 11);
$this->Cell(140,22,strtoupper($first400));
$this->Ln();
$this->Cell(140,22,strtoupper($theRest));
$this->Ln();
}
要获得进一步的帮助,请查看,因为您需要记住从零开始计算: http://php.net/manual/en/function.substr.php