0

誰かが私を助けてくれるかどうか疑問に思っています。私は一日中これを理解しようとしてきました。私はこれらの変数を持っています

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

このように説明したいと思います。

$description = "$date に $venue で $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 に答える