2008年12月アーカイブ

MTに記事投稿する際、MTではURLを自動的にリンクに変換してくれる機能がないので、ひろさんが作られたプラグイン「hirosikittextfilter.pl」を使わせていただく。

これがあると非常に便利。
→ http://memo.hirosiki.jp/article/41793651.html

使い方は簡単で、使用中のMTディレクトリの中のpluginsディレクトリに置くだけ。

設置すると、記事作成画面の「フォーマット」に「改行を変換+URL自動リンク(ひろ式)」が新しく追加される。

このラベルの文字がOSの関係で変な記号になってしまう場合は、スクリプト内の

 label => '&354424;......'; の部分を

 label => '改行を変換およびURLを補完',

などと、強引に書き換えてしまえばOK。


追加した後は、ブログの設定で、記事作成時の初期フォーマットをこれに設定しておく。

これでメールからの自動投稿などにも対応できる。

メルマガのバックナンバー記事をそのままブログに流すときなどに便利。


続き → http://www.igreks.jp/dev/2009/01/mturl.html
メルマガ配信システムの予約配信機能などで役に立つperlスクリプト例。

フォームから年・月・日・時などを別々に受け取った場合、その日時が予約可能であるかなどを判別するのには、Time::Localモジュールを使うと便利。

※下の$FORMハッシュ名部分はご自分のリードパース環境に合わせて読み替えてください。
($inとか・・・)



sub check_reserve_day{    #配信日チェック

    if($FORM{'res_year'} eq "" || $FORM{'res_mon'} eq "" || $FORM{'res_day'} eq "" || $FORM{'res_time'} eq ""){
        &error("予約する日時を指定してください。");
    }

    my $leap = &leapyear($FORM{'res_year'});     #うるう年なら1
    if ($FORM{'res_day'} > $mdays[$FORM{'res_mon'}-1] ){
        if ($FORM{'res_mon'} == 2){
            if ($leap == 1){
                if ($FORM{'res_day'} > 29){
                    &error("存在しない日時です");
                }
            }
            else{
                if ($FORM{'res_day'} > 28){
                    &error("存在しない日時です");
                }
            }
        }
        else{
            &error("存在しない日時です");
        }
    }
    #モジュール読み込み
    use Time::Local qw( timelocal );
    #yyyy-mm-dd-tt形式をエポック秒に戻す
    my $res_epoch = &timelocal( 0, 0, $FORM{'reserve_time'}, $FORM{'res_day'}, $FORM{'res_mon'}-1, $FORM{'res_year'}-1900 );
    if (($res_epoch - time)/60 >= 60){
        if (($res_epoch - time)/60/60/24 > 30){
            &error("予約できるのは30日先までです");
        }
    }
    else{
        &error("予約可能日時は1時間後からです");
    }
}

sub leapyear{        #閏年
    my($year)=@_;
    if ($year % 4 == 0){
        if ($year % 100 == 0){
            if ($year % 400 == 0){
                return 1
            }
            else{
                return 0;
            }
        }
        else{
            return 1;
        }
    }
    else{
        return 0;
    }
}


※ちなみにエポック秒(1900年1月1日0:00からの経過秒)には、うるう秒は含まれません。

このアーカイブについて

このページには、2008年12月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2008年11月です。

次のアーカイブは2009年1月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

Powered by Movable Type 4.22-ja