mysqlデータベースからいくつかのデータを取得し、それを使用してテーブルを作成しています。非常に長い文字列を切り詰める切り捨て関数があります。
切り捨て関数は次のとおりです。
function myTruncate($string, $limit, $break=".", $pad="...")
{
// return with no change if string is shorter than $limit
if(strlen($string) <= $limit) return $string;
// is $break present between $limit and the end of the string?
if(false !== ($breakpoint = strpos($string, $break, $limit))) {
if($breakpoint < strlen($string) - 1) {
$string = substr($string, 0, $breakpoint) . $pad;
}
}
return $string;
}
関数が呼び出されるテーブル構築ビットは次のとおりです。
while($row = mysql_fetch_assoc($liveItemQuery)){
//get donation type
$content .= "<tr><td>" . $i . "</td><td>" . $row['timestamp'] . "</td><td>" . myTruncate($row['description'], 25) . "</td><td>" . $row['po_number'] . "</td><td>" . number_format($row['amount'], 2) . "</td><td><a href=\"?view=expenses&itemid=" . $row['id'] . "\">Edit</a></td></tr>";
$i++;
}
とはいえ、説明フィールドでは切り捨ては実行されていません。description
データベースにデータ型として格納されていることは注目に値するかもしれませんtext
。myTruncate($row['description'], 25)
また、レポートのvarダンプstring(1995)
、テキストの全長。
では、何が起こっているのでしょうか。
よろしくお願いします。