JavaScriptでPHPのmb_convert_kanaを再現

PHPにはmb_convert_kanaという関数があります。英字、数字、ひらがな、カタカナの半角と全角を相互に変換することができます。ひらがなとカタカナの変換もできます。

PHP: mb_convert_kana - Manual

これをJavaScriptで再現してみました。オプションはPHPと全く同じです。
前に「JavaScriptで全角英数字を半角に変換」という記事を書きましたが、一部、これを流用しています。 (さらに…)

PHPでTwitterAPIを使う「codebird」

TwitterAPIは1.1に切り替えられます。2013年3月5日にブラックアウトテストが行われ、古いAPIだとエラーになるそうです。

PHPでTwitterAPI1.1を使うためのプログラムを紹介します。 (さらに…)

PHPやウェブアプリがローカルで試せる「AMPPS」

PHPやMySQLなどをWindows、Macのローカル環境で簡単に試すことができる「AMPPS」を紹介します。
WordPress、Xoops、MediaWikiなどのウェブアプリも一発でダウンロードでき、簡単に使えます。
現在、258種類のアプリに対応しているようです。 (さらに…)

ImageTtfBBoxの不具合

PHPにはImageTtfBBoxという関数があります。
画像を作成し文字列を表示したときのサイズを求められます。
ところが正しい場合とそうでない場合があります。

PHPでImageTtfTextを使い、文字列を表示。
それと同じ条件でImageTtfBBoxを使い、サイズを求め、四角で囲みました。
サイズが正しく求められれば、文字列の外にピッタリと四角が描かれるはずです。 (さらに…)

PHPでPOSTを使ってウェブページのソースを取得する

PHPでウェブページのソースを丸ごとゲットするには「file_get_contents」を使います。

$url = "http://xxxxx.com/yyyyy.php";
$text = file_get_contents($url);

このようにすればソース全体を一度に文字列として取得できます。

もしURLにパラメータがある場合も同じです。

$url = "http://xxxxx.com/yyyyy.php?p=aaaaa&q=bbbbb";
$text = file_get_contents($url);

パラメータがURLに含まれていない場合、つまり「POST」を使う場合はちょっと工夫が必要です。

<form action="" method="post">
<input type="text" name="p">
<input type="text" name="q">
<input type="submit" value="実行">
</form>

このようにメソッドとして「POST」を使うケースだとURLにパラメータが現れません。
その場合は次のようにします。PHP5で使えます。

$url = "http://xxxxx.com/yyyyy.php";
$data = array(
    "p" => "aaaaa",
    "q" => "bbbbb"
);
$options = array("http" => array(
    "method" => "POST",
    "content" => http_build_query($data),
));
$text = file_get_contents($url, false, stream_context_create($options));

「$data」に連想配列としてパラメータをセットします。

PHPを使ってGoogleカレンダーにイベントを追加する

GoogleカレンダーがIE6で使えなくなりました。使えないことはないのですがレイアウトがグチャグチャ。
そこで予定を追加する別の方法を探してみました。
見つかったのが次のページ。

PHP アプリケーションから Google カレンダーを利用する

とても詳しく書いてあります。
これを自分なりに解釈して簡略化してみました。

Zendをインストール

Zendというフレームワークを使います。
次のサイトからダウンロードします。

Zend Framework: Downloads: Downloads(http://framework.zend.com/download/gdata)
Latest - Downloads - Zend Framework

「Zend_Gdata(Version 1.12.0;released 2012-08-27)」にあります。解凍し、「library」の中の「Zend」が使うフォルダです。※2012年9月9日追記。

解凍して、後述するプログラム本体(PHPファイル)と同じフォルダに「Zend」というフォルダを作り中身をまるごと入れておきます。

プログラム本体

次がプログラム本体です。
実際にはフォームを使うのでしょうが、簡略化してあります。
ページを開くと、ここに書かれたタイトル、開始時刻、終了時刻、場所がイベントとして追加されます。

$title="打合せ";
$start_datetime=mktime(10,30,0,9,15,2011);//2011年9月15日10時30分
$end_datetime=mktime(11,30,0,9,15,2011);//2011年9月15日11時30分
$place="第三会議室";
gcal_add_event($title,$start_datetime,$end_datetime,$place);

イベントを追加する関数

次がイベントを追加する部分です。
$userと$passに自分のGmailのアドレスとログインパスワードを書いておきます。

function gcal_add_event($title,$start_datetime,$end_datetime,$place){
    //自分のGmailアドレスとログインパスワード
    $user = "xxxxx@gmail.com";
    $pass = "xxxxx";

    //クラスをロード
    require_once 'Zend/Loader.php';
    Zend_Loader::loadClass('Zend_Gdata');
    Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
    Zend_Loader::loadClass('Zend_Gdata_Calendar');
    Zend_Loader::loadClass('Zend_Http_Client');

    //サービスに接続
    $gcal = Zend_Gdata_Calendar::AUTH_SERVICE_NAME;
    $client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $gcal);
    $gcal = new Zend_Gdata_Calendar($client);

    //日付時刻をATOM形式に
    $start = date(DATE_ATOM, $start_datetime);
    $end   = date(DATE_ATOM, $end_datetime);

    //イベントを作成し追加
    try {
        $event = $gcal->newEventEntry();
        $event->title = $gcal->newTitle($title);
        $when = $gcal->newWhen();
        $when->startTime = $start;
        $when->endTime = $end;
        $event->when = array($when);
        $event->where = array($gcal->newWhere($place));
        $gcal->insertEvent($event);
    } catch (Zend_Gdata_App_Exception $e) {
        print "エラー: " . $e->getResponse();
    }
    print "イベントを追加";
}

PHPのdate関数でよく使うフォーマット文字列

PHPのdate関数は日付を整形するときによく使うのですが、フォーマット文字列をすぐに忘れてしまうので、よく使うものだけをピックアップして整理してみました。

date(フォーマット文字列)
区分 数値 英文字
Y (4桁)、y (2桁)
m (2桁)、n (1or2桁) F (フル)、M (3文字)
d (2桁)、j (1or2桁)
曜日 w (0:日曜日) l (フル)、D (3文字)
H (2桁)、G (1or2桁)
i (2桁)
s (2桁)

※「O」はグリニッジ標準時との時差。

サンプル

date("Ymd")→「20110901」

date("Y-m-d")→「2011-09-01」

date("Y-n-j")→「2011-9-1」

date("D M j H:i:s \U\T\CO Y")→「Thu Sep 1 14:26:38 UTC+0900 2011」
※JavaScript(IE)の日付。

date("D M d Y H:i:s \G\M\TO")→「Thu Sep 01 2011 14:26:38 GMT+0900」
※JavaScript(Firefox)の日付。

date("c")→「2011-09-01T14:26:38+09:00」
※ISO8601の日付。

date("r")→「Thu, 01 Sep 2011 14:26:38 +0900」
※RFC2822の日付。

PHPでURLを読み替える方法

PHPを使うと、パラメータを与えてそれに応じて描画する、ということができます。
例えば「http://myhost/imagetest.php?p=abcd&q=jpg」というURLを指定し「abcd」というパラメータを与え、これに応じてJPG画像を作成するケースがあったとします。
この場合、描画した画像を保存する場合、ファイル名がすべて「imagetest.jpg」となってしまいます。パラメータが異なってもファイル名が同じなのです。
もしURLが「http://myhost/imagetest.php/abcd.jpg」ならばファイル名は「abcd.jpg」と保存されるので、次のような処理ができないか、考えます。 (さらに…)

mb_convert_kanaのオプション

PHPにはmb_convert_kanaという便利な関数があります。
全角と半角を相互に変換するだけでなくカタカナとひらがなを変換してくれます。

変換後 = mb_convert_kana(変換前, オプション);

どのように変換するかはオプションを文字列として与えます。
"C"とすると 全角のひらがな を 全角のカタカナ に変換します。
複数指定もできます。"RN"とすると 半角の英字、数字 を 全角の英字、数字 に変換します。

整理してみました。

パターン 全角⇒半角 半角⇒全角
英字 r R
数字 n N
英数字 a A
スペース s S
全角カタカナ⇔半角カタカナ k
全角カタカナ→半角カタカナ
K
半角カタカナ→全角カタカナ
全角ひらがな⇔半角カタカナ h
全角ひらがな→半角カタカナ
H
半角カタカナ→全角ひらがな
全角カタカナ⇔全角ひらがな c
全角カタカナ→全角ひらがな
C
全角ひらがな→全角カタカナ

ポケモン立体図鑑ARマーカーメーカー

昨日からポケモン立体図鑑で遊んでいますが、今日はPHPを使って「ARマーカーメーカー」を作ってみました。

URL

http://tool.stabucky.com/pokemon/armarker.php?q=1010110110010010&s=180
q

コード。ARマーカーは4マス×4マスなので左上から右に順番に16桁をセットします。黒ならば「1」、白ならば「0」とします。
s

サイズ。ピクセル単位で画像のサイズを指定します。

このようにセットすると、次のように表示されます。これはゼクロムです。

ゼクロム

追記
入力欄のあるページを作ってみました。
ポケモン立体図鑑ARマーカーメーカー

古い記事

タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報