Pages

2009年9月4日金曜日

Smartyで指定文字数までに丸める(削る)。ただし指定はByteで指定する。UTF-8へも対応

 Smarty側で指定バイト数を超えている場合に文字化けしよいように丸める。
UTF8は1バイト~4バイトまで混じっているので、ちょっと工夫が必要となる。

下記関数では文字数を超えている場合まだ続きを表すための文字を追加できる。
もちろん追加した状態で最大文字数を超えないようにしている。
※デフォルトは”…”
※空を渡せば丸めた後に何も付けずにギリギリまで表示できる。

function smarty_modifier_org_truncate_byte ($string, $length='', $end="…", $enc='UTF-8') {

    $length = (int)$length;
    $end = (string)$end;

    $MbLength = @mb_strlen($string, $enc);

    $ByteCount = 0;
    $ResStrings = $OverStr = '';

    for ($i=0; $i<$MbLength; $i++) {

        $str = mb_substr($string, $i, 1, $enc);
        $len = strlen($str);

        if (($ByteCount + $len + strlen($end)) > $length && $OverStr == '')
            $OverStr = $ResStrings . $end;

        if (($ByteCount + $len) > $length) {
            return $OverStr;

        } else {
            $ResStrings .= $str;
            $ByteCount = $ByteCount + $len;
        }
    }
    return $ResStrings;
}

▼利用方法
テンプレート内で下記のように書く。
{$hogehoge|org_truncate_byte:100}

2009年8月26日水曜日

Smarty リソースのエラーについて

ちょっとハマってしまったので、メモ。

リソースが空だよ!!的なエラーが出た時はdisplayを疑ってしまうけど、テンプレート内のincludeも確認する事。

displayばっかり見て変に時間かかった。。。

2009年8月24日月曜日

TaskManagerちゃんと終了してくれない?


最近気付いたけどどうやらこのTaskManagerには2つの起動中アプリ一覧(タスク一覧、プロセス一覧)の表示させる方法があるのですが、タスク一覧で停止させても終了しないようです。

試しにタスク一覧でSTOPした後に、プロセス一覧を見てみても起動のままになってました。
何故なんでしょうかね。。。

最近imeemを入れてから重いです。。。
終了は必ずプロセス一覧からしないとダメですが、そこまでなかなかたどり着けない場合もあります。。。
でも気に入りすぎて消せません(笑)

2009年8月17日月曜日

直交表を作成しました

HAYST法でテストケースを作ろうにもなかなか直交表が無料で配布されていない。。。
なので作りましたL32までとりあえず作りましたが、L64の必要が出てきたところで更新したいと思います。

直交表をダウンロード

2009年8月11日火曜日

UPDATE でJOINする方法(PostgreSQL)

2つのテーブルにまたがってユニークとなるキーが存在した場合に必要となった。
PostgreSQLでは対応可能であったのでメモ。

UPDATE
    hoge1
SET
    flag = 1
FROM
    hoge2
WHERE
    hoge2.code = hoge1.code
AND
    TRANSLATE(hoge2.col1, '-', '') || hoge1.col2 = 'testtest'

★ポイントはココ

FROM
    hoge2
WHERE
    hoge2.code = hoge1.code

Followers