アルファサード株式会社 代表取締役 野田 純生のブログ


PHPerのための Movable Type 講座(その6)


公開日 : 2014-04-17 12:12:41


まだ続きます。MTUtil.phpについて

さて、MTUtil.php編です。日付関係とかエンコードデコードとか、いわゆるユーティリティ的な関数群。

require_once( 'MTUtil.php' );

日付関係

datetime_to_timestamp

Unixタイムスタンプへの変換。 2014-04-17 10:08:57 → 1397696937

$epoc = datetime_to_timestamp( $blog->blog_children_modified_on );

start_end_ts

年(YYYY)、年月(YYYYMM)を渡すと、それぞれ年、月の最初と最後のタイムスタンプを返す。DBで範囲指定をする時などに利用。

list( $start, $end ) = start_end_ts( 20140416 );
//->20140416000000
//->20140416235959

start_end_month

月の最初と最後のタイムスタンプを返す。以下、結果的にはstart_end_tsと同じ。

list( $start, $end ) = start_end_month( 20140416 );
//->20140416000000
//->20140416235959

days_in

その月が、何日まであるか。月、年の順に引数を渡す。

$d = days_in( 4, 2014 );
//->30

start_end_day

その日の最初と終わり。

list( $start, $end ) = start_end_day( 20140416 );
//->20140416000000
//->20140416235959

start_end_year

その年の最初と終わり。

list( $start, $end ) = start_end_year( 20140416 );

start_end_week

その週の最初と終わり。週別アーカイブとか、みんな使ってます?

list( $start, $end ) = start_end_week( 20140416 );

is_leap_year

閏年かどうか。

$leap_year = is_leap_year( 2014 );
var_dump( $leap_year ); // false

gmtime

グリニッジ標準時間 (GMT)を返す(配列で)。引数にタイムスタンプを渡せる。省略時は現在時刻。

var_dump( gmtime() );
array(9) { [0]=> int(59) [1]=> int(30) [2]=> int(2) [3]=> int(17) [4]=> int(3) [5]=> int(114) [6]=> int(4) [7]=> int(106) [8]=> int(0) }

返り値の構造については→PHP: localtime - Manual

offset_time_list

ブログ/ウェブサイトのゾーン設定を反映した時刻を返す。

$ts = offset_time_list( time(), $blog );
$timestamp = sprintf( "%04d%02d%02d%02d%02d%02d",
    $ts[5]+1900, $ts[4]+1, $ts[3], $ts[2], $ts[1], $ts[0] );
//->20140417113635

wday_from_ts

今日は何曜日?

$wday = wday_from_ts( 2014, 4, 17 );
//->4(木曜日)

yday_from_ts

今日は今年の何日目?

$wday = yday_from_ts( 2014, 4, 17 );
echo $wday;
//->107(日目、おっと、もう100日以上経過してんのか!)

文字列関係

dirify

basenameの組み立て的な。

$dirify = dirify( 'This is it', '_' );
//->this_is_it

encode_xml

XMLフォーマットに適した形式にエンコードします。データがHTML要素やタグを含んでいる場合、CDATAブロックで囲んで出力。

decode_xml

XML エンティティをデコード。

encode_js

javascriptエンコード。

strip_hyphen

連続した'-(ハイフン)'(SGML注釈宣言内で禁止されている)をハイフン1つに変換。

first_n_text

テキスト,数字を引数に渡して↓

言語設定を日本語にしているときは、ブログ記事の本文から、指定した N 文字分だけ抜き出します。もし、言語設定を英語にしているなら、ブログ記事の本文から、N 語 (単語) 分だけ抜き出します。

注意点は、言語設定を日本語にしている環境で、本文に英語の文章を含むときです。この場合、本文から N 語分抜き出すのではなく、N 文字分抜き出します。

html_text_transform

テキストを引数に渡すと、「改行を変換」処理後のテキストが返る。

munge_comment

使われてない? っぽいのですが、第一引数にテキスト、第二引数に$blogオブジェクトを渡して、コメントHTMLを許可する云々の処理をしてくれるっぽい。URLをリンクに変換したり。

length_text

mb_strlen もしくは使えない場合 strlen の結果を返す。

substr_text

mb_substr もしくは使えない場合 substr の結果を返す。

tag_split_delim

第一引数に区切り文字、第二引数に文字列を渡して、配列を返す(要するに、タグ付けのためのもの)。

tag_split_delim( ',', 'MT, Movable Type, PowerCMS' );

MT固有? のもの

cat_path_to_category

カテゴリのパスから、カテゴリ(Category)オブジェクトの配列を返します。第三匹数は category か、folder。

$cats = cat_path_to_category( 'category/sub_category', $blog_ctx_arg, 'category' );

同じ名前のカテゴリが別の階層にある場合は、親カテゴリ/サブカテゴリと記述して、異なるカテゴリを指定します。

static_path(static_file_path)

mt-staticディレクトリのパス

support_directory_url(support_directory_path)

サポートディレクトリのパス(URL)。

get_thumbnail_file

サムネイルファイルを生成して、パスや情報を返す。$argsに渡せるのは、MTAssetThumbnailURLタグのモディファイアに指定できる値。

width、height、scale、squareを渡せる

list( $thumb, $width, $height, $res ) = get_thumbnail_file( $asset, $blog, $args );

_strip_index

第一引数にURL、第二引数にブログ(Blog)オブジェクトを渡すと、インデックスベースネームと拡張子設定なんかを反映したURL(通常はindex.htmlを補完するような形式になる)を返します。社内で指摘が(> <。逆だった。index.htmlなんかを削除します。

with_index="1" 1の値を設定した場合、出力されたURLにインデックスファイル名(通常index.html)を付与します。

↑の、逆

common_loop_vars

ブロックタグを生成するとき、$localvars を初期化する際に、ブロックタグ共通の __counter__、__odd__、__even__、__first__、__last__、__key__、__value__ を配列で返してくれます。



このブログを書いている人
野田純生の写真
野田 純生 (のだ すみお)

大阪府出身。ウェブアクセシビリティエバンジェリスト。 アルファサード株式会社の創業者であり、現役のプログラマ。経営理念は「テクノロジーによって顧客とパートナーに寄り添い、ウェブを良くする」。 プロフィール詳細へ