2014年2月28日金曜日

PHP: 正規表現で取得したい文が途中で切れてしまう

PHP の DOMElement の textContent の文を、
preg_mach() で取り出そうとした時に、結果が途中で途切れてしまった。
// HTML 読み込み
$domDocument = new DOMDocument();
$domDocument->loadHTML('test.html');

// 目標の文字列を取得
$domElement = domDocument->getElementById('target_data');
$text = $domElement->textContent;
echo $text;  // "データ:ABC DEF HIJ"

// 文字列中から必要な部分を抽出
preg_match('/^データ:(.*)$/', $text, $matches);

// 取得できたかテスト
echo $matches[1];  // "ABC" <- "DEF HIJ" がない

原因は textContent の文字列中に改行コード \n が含まれていたためであった。
 正規表現の . は「改行を除く任意の1文字」を表すため、
 改行以前の部分だけにマッチしてしまっていた。

 対象の文字列を Web ブラウザ上へ表示した場合、
 \n が半角スペースとして表示されるため気付かなかった。

 マッチングを行う前に str_replace() で改行コードを取り除くことで解決できた。
$text = str_replace("\n", '', $text);

 ---

 DOM - PHP.net
 http://jp2.php.net/manual/ja/book.dom.php

2014年2月27日木曜日

PHP: phpMyAdmin で大きいサイズのファイルをインポート

phpMyAdmin へサイズの大きい SQL ファイルをインポートしようとしたところ、
サイズが大きすぎてインポートできないというエラーが表示された。
この場合は php.ini の upload_max_filesize を大きくしたところ改善できた。


詳しくはこちらに詳しく解説されています。
大きいサイズのMySQLがphpMyAdminにインポートできない -  レンサバネット
http://rensabanet.com/wordpress-tips/tukai/11733/

2014年2月26日水曜日

ゲーム: Humble Indie Bundle 11 で FEZ を含むインディーズゲームが買える

好きな値段でゲームが買える Humble Bundle シリーズの新しいセットが販売されています。
インディーズゲームをセットにした Humble Indie Bundle 11 です。
含まれるゲームは"Giana Sisters: Twisted Dreams"以外 Windows, Mac, Linux で動作します。
今回は Indie game the movie でもおなじみの FEZ が含まれています。
すべてのゲームにはサウンドトラックが付加されます。

ご購入はこちらから
https://www.humblebundle.com

含まれるゲームは以下の通りです。

Guacamelee! Gold Edition



Dust: An Elysian Tail



Giana Sisters: Twisted Dreams



The Swapper




購入者が支払った平均金額(執筆時点で $4.61)以上を支払うことで以下の5本も付いてきます。

Antichamber



Monaco: What's Your Is



FEZ



Starseed Pilgrim



Beat Buddy




お得ですので購入を検討してみてはいかがでしょうか。

2014年2月25日火曜日

HTML5: placeholder で入力例を示す

HTML5 のテキスト入力フォームで、placeholder を指定すると、
以下のように入力例などを指定することができる。
初期値を入力する場合とは異なり、
フォーカスを当てた時や入力を始めた時に消えてくれる。
ただし古いブラウザでは表示されないので注意が必要。

<label>お名前:<input type="text" placeholder="例:田中太郎"></label>

2014年2月24日月曜日

JavaScript: ajaxzip3 で郵便番号自動入力

ajaxzip3 は MIT ライセンスの無料で使える住所自動入力ライブラリ。
フォームへ郵便番号を入力すると、対応する住所を自動的に保管してくれる。

1つ前のバージョン ajaxzip2 ではファイルサイズの大きい住所データを、
サーバ上へアップロードしなければならなかったが、
ajaxzip3 では専用のサーバからデータを取ってこれる。
<script> 要素で JavaScript を読み込んでくれば使用できるようになる。

サンプルはこちら

onKeyUp で呼び出している AjaxZip3.zip2addr() の引数へ、
都道府県やそれ以下のテキストフォームの name を渡してやれば良い。
その他にも公式ページには郵便番号のテキストフォームを2つに区切る場合や、
都道府県とそれ以下でわけない場合などのサンプルがある。

ajaxzip3 - Google Project Hosting
https://code.google.com/p/ajaxzip3/

2014年2月23日日曜日

紹介: Winarchiver で Mac から Windows 用の zip ファイルを作成

Mac から Windows へ zip ファイルを渡す際に、
デフォルトの圧縮機能だと余計な隠しファイルが入ってしまう。

圧縮ソフト WinArchiver を使用すれば余計なファイルを自動的に外して、
Windows にとって余計なファイルを含めない zip ファイルを作成できる。

無料版 WinArchiver Lite がオススメ。
https://itunes.apple.com/jp/app/winarchiver-lite/id414855915?mt=12



インストール後、WinArchiver Lite を起動し、
圧縮したいファイルをウィンドウへドラッグすれば zip ファイルが作成される。

2014年2月22日土曜日

Mac: Magic Trackpad のボタンが直った

以前、iMac で使用していた Magic Trackpad のボタンが埋まってしまう問題が起きた.
カチカチという押し込み感がなくなっていた。
http://yokano-jp.blogspot.jp/2013/06/magic-trackpad.html

諦めて使用していたが、トラックパッドを強く曲げてみたところ元のようにボタンが押せるようになった。

壊れる可能性があるので自己責任で。

--

1.表から見て埋まっているボタンがある角を持つ
2.もう片方の手で反対側の角(対角)を持つ
3.トラックパッドの裏側に向かって反らせるように強い力を入れる

これをやるとトラックパッドをおいた時に、
埋まっているボタンが少し浮く状態になった。
(足の高さが合っていない椅子のようにぐらぐらするイメージ)

その後、ボタンを押してみるとカチカチという元のクリック感に戻った。