Perl
UNIXタイムスタンプ(1970-01-01からの秒数)から日付への変換。ワンライナーな方向け。 shell(BSDのdateコマンドの場合) $ date +%s 1377292293 $ date -r 1377292293 +'%Y-%m-%d %H:%M:%S' 2013-08-24 06:11:33 $ shell(GNU dateコマンドの場合) $ date +%s …
perlにencodingを指定するとき、shiftjisなのかcp932なのかちゃんと考えないといけない。でないと全角マイナスの扱いが違ってくる。 hz.pl #!/usr/bin/perl use strict; use warnings; use utf8; use Encode; use Data::Dumper; binmode STDOUT => 'utf8'; #…
Encode.pmとPerlIOの備忘録も兼ねて。 perlでShift_JISのCSVを読み込みUTF-8にて標準出力に出力。CSVの解析はText::CSV_XSを使用、PerlIOを使って入出力。 #!/usr/bin/perl use strict; use warnings; use Text::CSV_XS; use utf8; # このファイルはUTF-8 us…
理解したと思っても何度も何度も忘れてしまうので備忘録。 今のperlにはEncodeモジュールのおかげで文字コードを扱えるわけだが、ここでUTF-8を扱う場合には、UTF-8フラグとPerlIOレイヤを意識すること。 perl内部ではUTF-8フラグをオンにしてマルチバイトと…
MovableTypeのシステムチェックmt-check.cgiはperlのライブラリパス、使用モジュールやそのバージョンを表示してくれるので便利だが、設定後に起動する場合、mt-config.cgiがあると動かない。そのため、mt-config.cgiを別名に変更して起動すること。
メールアドレスの完璧な正規表現はないのだが、以下のもので「おおまか」に表現できるはず。 /^[a-zA-Z0-9_.-]+@([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,4}$/ 正規表現オプション"i"を付けられる言語であれば、"A-Z"の表記はいらないはず。元ネタは以下。 http://befi…
http://blog.livedoor.jp/dankogai/archives/51573012.html にあったperlスクリプトだが5.10でないと動かないので以下のように修正した。 perl -MLWP::UserAgent -le \ 'print LWP::UserAgent->new->head(shift)->request->uri \ http://j.mp/dankogai "-E"…
Movable Type 5.03 にアップグレード後、再構築ボタンにて再構築を行おうとすると、ポップアップウィンドウに Script ErrorThe script did not produce proper HTTP headers. .... のメッセージが出て再構築画面が表示されなくなった。これは、XREAのサーバ…
Movable Typeでリビルドさせるコマンドとして mt-rebuild.pl があるようだが、これはTypePadにsign inしないとダウンロードできないし、随分前のスクリプトなので MTに同梱されている tools/rebuild-pages を試してみた。なお、参考したのは以下のページだが…
基本的には、DBバックアップ、上書き、mt.cgi実行。以下を参照のこと。 http://www.movabletype.jp/documentation/mt5/upgrade/mt5.html $ mysqldump -u mtos -pmtos mtos | gzip >20100909-save.sql.gz $ wget http://www.movabletype.org/downloads/stable…
CentOS5のperl5.8.8にはXML::Simpleがインストールされていない場合がある。cpan経由でインストールするのもいいが、rpmが用意されているのでyumでインストールしてみた。 # yum install perl-XML-Simple .... Is this ok [y/N]: y .... Installing: perl-HT…
Movable TypeでTinyMCEを使用可能にするプラグインTinyMCEで、編集領域のスタイルを変更する方法。 [システム]->[プラグイン]->[TinyMCE]の設定にて、[編集領域に関する設定]で変更可能。 じかに記入もできるが、[URLを指定する]で指定してみた。firebugで編…
スコープの違いの再学習。 ファイルの先頭でmy宣言していたものを別ファイルに移動して、requireまたはuseした途端、スコープが違ってundefinedになるのは、こちらに書いてあるとおり、 ファイルは最初と最後に{}があるものとして扱われる ためのようだ。
ページタイプで切り分け。呼び出す前にはpage_titleに値を設定する必要あり。ulはインラインが前提のようだ。 呼び出し元(ブログ記事のテンプレート) <MTSetVarBlock name="page_title"><$mt:EntryTitle$></MTSetVarBlock> <$mt:Include module="パンくずリストその3(ページタイプで切り分け)"$> テンプレート(…
サブカテゴリまで考慮したもの。さらに各テンプレートによる切り分けを追加した。また、MTIfNonZeroは非推奨なのでMTIfに変更。 <div> <ul class="breadcrumbs"> <li><a href="/">TOP</a></li> <li>»<a href="<$mt:BlogURL$>"><$MTBlogName$></a></li> <$mt:TemplateNote value="カテゴリアーカイブリストの時"$> <mt:If name="category_archive"> <MTHasNoParentCategory> <li>»<$…</li></mthasnoparentcategory></mt:if></ul></div>
MTディレクトリ/tmpl/cms/include/asset_upload.tmpl このテンプレートでサイトパスのデフォルトを設定できるようだ。また、selectの順番を変えられそう。 ただし、直接テンプレートを修正するのではなく、alt-tmplにコピーするべきみたい。 MTディレクトリ/…
[出力ファイル名]をindex.phpに、[公開]をダイナミックに変更したとき、 500 Internal Server Error になった。原因は、該当ディレクトリのAllOverrideがAllでなかったため。 ダイナミックにすると、該当ディレクトリに.htaccessとmtview.phpを作成する。 .h…
末尾の参照サイトを参考にして、instaMT(USB版)をMTOS 5.02にするべく、以下の手順で行ってみた。 1. ダウンロードした instaMT (USB) を解凍する。 2. ダウンロードした MTOS 5.02 を解凍する。 3. MTOS 5.02 の *.cgi の一行目を #!/usr/bin/perl -w から …
ブログ1 カテゴリA カテゴリB ブログ2 カテゴリA カテゴリC とあった場合にサイト全体でカテゴリAの一覧を表示したい場合、を使って表示できた。 <h2>全ブログのカテゴリA</h2> <mt:Blogs include_blogs="children" include_with_website="1"> <MTIfArchiveTypeEnabled archive_type="Category"> <div class="categorycommon"> <h3><a href="<$MTBlogURL$>" title="<$MTBlogDescription$>"><$MTBlog…</a></h3></div></mtifarchivetypeenabled></mt:blogs>
Movable Type 5のウェブサイト全体のサイトマップを作成したい場合の例。 ポイントはこちらのコードをで囲むこと。include_blogsモディファイアでブログを指定する。必要に応じてinclude_with_websiteモディファイアも指定する。 サイトマップページ作成はも…
Movable Typeではカレンダーにリンクされるのはその日の最新の記事となる。 これを同じ日のエントリすべて表示させる場合、 日別記事リストテンプレート作成 上記テンプレートにアーカイブマッピングを日別として設定 カレンダーの修正 ということが必要のよ…
公開日を指定して日時指定で保存したページは、以下のコマンドによって、指定した日付以降であれば公開となる。指定した日付以降で該当ページを変更保存しても、以下のコマンドを起動させないかぎり公開はされない。 $ perl $MTDIR/tools/run-periodic-tasks…
[デザイン]->[スタイル]にスタイルを変更できるところがある。これは要するにhtmlを変更せずにスタイルだけ変更することで見た目を変えることができるようになっている。管理画面から変更すると、テンプレートのスタイルシート(styles.css)が変更になる。も…
レンタルサーバに設置した、CGIのInternal Server Errorが出たら、 http://www.kawa.net/works/perl/catch/news.html を試してみるのがよい。KCatch.pm をアップロードして、 #!/usr/local/bin/perl use KCatch qw( execdata );__DATA__ use warnings; use s…
perlでインストールされているモジュールの確認を行う例。 #!/usr/bin/perl use strict; use warnings; my @modules = qw(Mail Mail::Mailer GD MIME MIME::Parser MIME::Base64); #print join("\n", @INC) . "\n\n"; foreach (@modules) { my $v = (&check_…
概要 tDiaryからwordpressへ引っ越しをする際、MovableTypeへ変更するようだ。 http://fumi.me/2009/02/10/tdiary-to-wordpress/ そこで上記で見つけたt2m.plをもとに引っ越しを行った。ただ、こちらの環境に合わせて以下の変更を行っている。 投稿ステータ…
perlによる quoted printのdecode。 $ perl -MMIME::QuotedPrint -ne 'print(decode_qp($_));' < quoted-print.txt
まずは、いままでの「文字コード変換」っぽく #!/usr/bin/perl # # This file code is UTF-8N. # use strict; use warnings; use open ":utf8"; use Encode::Guess qw/euc-jp shiftjis 7bit-jis/; use Encode qw/from_to/; # UTF-8コード変換 while (<STDIN>) { # U</stdin>…
PHPでredirect 301 (permanent)する方法。 perlでredirect 301 (permanent)する方法。 #!/usr/bin/perl use strict; use warnings; my $redirect_location = "http://www.example.jp/"; print <
久し振りにjcode.plを使って、こちらのコーディングミスによるエラーでハマった。apacheのエラーログには、 Undefined subroutine &jcode::f called at jcode.pl line 400., .... と出ている。どうも、 jcode::euc(undef, 'euc', 'z'); だとそうなるらしい。…