0

我只是想知道是否有人可以帮助我。我整天都在想办法解决这个问题。我有这些变量

$booking['occasion']
$booking['date']
$booking['venue']

我想像这样对它们进行描述。

$description = "$venue $date 为 $occasion 提供 DJ 的押金";

我想在这样的 pdf 文件中显示超过 3 或 4 行的描述

$pdf->writeHTMLCell(139, 5, '20', '125', $line1, '', 1, 1, true, 'L', true);
$pdf->writeHTMLCell(139, 5, '25', '125', $line2, '', 1, 1, true, 'L', true);
$pdf->writeHTMLCell(139, 5, '30', '125', $line3, '', 1, 1, true, 'L', true);
$pdf->writeHTMLCell(139, 5, '35', '125', $line4, '', 1, 1, true, 'L', true);
$pdf->writeHTMLCell(139, 5, '40', '125', $line5, '', 1, 1, true, 'L', true);

我想在每 68 个字符后将描述换行到下一行,但只想在完成的单词后换行

任何人都可以帮我创建一个函数来将描述分成 3 或 4 行到目前为止我有这个代码,我知道它是我想要的。

$description = "Deposit for suppling a DJ and Equipment for a $occasion on the 
$date in $venue";
$decriptionLength = strlen($description);
if($decriptionLength <= 68){
  $line1 = $description;    
}
elseif($decriptionLength > 68)
{
  $line1 = substr($description, 0, 68);
  $line2 = substr($description, 68, 136);
}

这段代码甚至会在一个单词的中间换行,所以我不想要这个。我知道这可能会有很多问题,但如果有人能想出一些代码,我将不胜感激。

4

1 回答 1

0

wordwrap()功能可能会有所帮助。

http://php.net/manual/en/function.wordwrap.php

$wordwrapped = wordwrap($description, 139, "\n");

$lines = explode("\n", $wordwrapped);

$line1 = $lines[0];
$line2 = $lines[1];

if (count($lines) > 3) {

    $third_line = "";

    for ($idx = 1; $idx < count($lines); $idx++) {
        $third_line .= $lines[$idx] . " ";
    }

    $line3 = $third_line;

}

else {

    $line3 = $lines[2];

}
于 2012-11-25T17:06:08.147 回答