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.トラックパッドの裏側に向かって反らせるように強い力を入れる

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

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

2014年2月21日金曜日

Illustrator: png 形式で画像を保存

環境
- Mac OS X 10.9.1
- Illustrator 17.1.0

メニューから
ファイル > Web 用に保存

で png 形式で保存できる。



参考
[Illustrator] PNG形式で保存する方法 - かんたんにわかる!Illustrator の使い方
http://tech.kihon.jp/illustrator/3505

2014年2月20日木曜日

Mac OS X: ことえりのひらがなが使えない時

Mac OS X 10.9.1 で Google 日本語入力を使っている状態だったが、
一時的にことえりに戻そうとしたところ、
ことえりの入力モードでひらがなをチェックできない状態が発生した。

スクリーンショットを撮り忘れていたので、イメージ図。
設定 > キーボード > 入力ソース > ことえり



以下のファイルを削除したところ、チェックできるようになった。
~/Library/Preferences/com.apple.HIToolbox.plist

削除前にバックアップをとることを忘れないように注意。

参考
ことえりのひらがなが選べない
https://discussionsjapan.apple.com/message/100804932

2014年2月19日水曜日

Illustrator: オブジェクトを角丸にする

環境
- Illustrator CC Version 17.1.0
- Mac OS X 10.9.1

オブジェクトを選択した状態で、メニューから

効果 > スタライズ > 角を丸くする

を選択する。



参考
Illustratorで角丸を作り、それを調整する方法 - nanapi

2014年2月18日火曜日

jQuery: セレクトボックスの値を変える

jQuery からセレクトボックスの値を変えるときは以下のようにする。

2014年2月17日月曜日

jQuery: .attr() で取得するときは先頭の要素から取得される

jQuery の attr() で要素の属性を取得する時、
セレクタに引っかかるの対象が複数ある場合は先頭の要素の属性を取得してくる。
 

.attr() - jQuery
http://api.jquery.com/attr/

2014年2月16日日曜日

JavaScript: AjaxZip 2.0 で住所データが取得できないとき

郵便番号入力時に自動的に住所を入力してくれるライブラリ AjaxZip 2.0 で、
以下の様なエラーが出て住所が表示されない現象が起きた。

Failed to load resource: the server responded with a status of 404 (Not Found)
http://xxxxxx/xxxxxx/lib/ajaxzip2/data/zip-062.json

この場合、住所データの json ファイルを読みにいけていないので、
パスを正しく設定し直す必要がある。

ページ読み込み完了時に JavaScript から以下のようにファイルの場所を指定する。
エラーに出ている間違って参照しているファイルパスを見つつ修正すれば良い。

// 住所データの場所
AjaxZip2.JSONDATA = '../lib/ajaxzip2/data/';

2014年2月14日金曜日

紹介:weblio 英単語帳

Weblio の英単語帳が便利だった。
http://uwl.weblio.jp/word-list

Web ブラウザで使用できるので英語サイトを読むときに2窓で開いておき、
わからない単語があるたびにコピペしていけばOK。
英単語のみ入力すれば意味や読み方などを自動で保管してくれる。
例文なんかも辞書から引っ張ってきてくれる。



2014年2月13日木曜日

Apache:BASIC 認証のユーザを削除する

htpasswd コマンドで作成したユーザを削除する。
# htpasswd -D [パスワードファイルの場所] [ユーザ名]

ユーザを作成する方法はこちら
http://yokano-jp.blogspot.jp/2013/12/apache-basic.html

2014年2月12日水曜日

the Humble Sid Meie Bundle で Civilization などが買える

好きな値段でゲームが買える Humble Bundle シリーズへ新しいセットが追加されました。 1週間限定で以下のゲームを $1~ で購入できます。


  • Sid Meier's Civilization II Complete
  • Sid Meier's Civilization IV: The Complete Edition
  • Sid Meier's Ace Patrol
  • Sid Meier's Ace Patrol: Pacific Skies
  • Sid Meier's Railroads!

また購入者が支払った平均金額以上を支払うことで以下のゲームとサントラもついてきます。
  • Sid Meier's Civilization V
  • Sid Meier's Civilization V: Gods and Kings DLC
  • Sid Meier's Civilization V: Scrambled Nations Map Pack
  • Sid Meier's Civilization V: Scrambled Continents Map Pack
  • Sid Meier's Pirates!
  • Civilization V Soundtrack
  • Baba Yetu (Civilization IV Theme)

さらに $15 払うと
  • Sid Meier's Civilization V: Brave New World DLC

がついてきます。ちなみに Civ IV, V は Mac でも遊べます。



購入はこちらから
Humble Sid Meier Bundle
https://www.humblebundle.com/?utm_source=Humble+Bundle+Newsletter&utm_campaign=0d212d9dd7-newsletter_sidmeiermpa&utm_medium=email&utm_term=0_990b1b6399-0d212d9dd7-98614413

2014年2月11日火曜日

phpMyAdmin: インポートする CSV のデリミタを変更

phpMyAdmin では CSV ファイルからデータベースへデータをインポートできる。
インポート画面で区切り文字を設定できるが、
バージョンが古い場合は " , "  ではなく " ; " がデフォルトとなっている場合がある。

デフォルトの区切り文字を " ,  " へ変更する場合は、
config.inc.php へ以下の設定を追加すれば良い。
$cfg['Import']['csv_terminated'] = ',';

詳しくは phpmyadmin/libraries/config.default.php へ記述されているのでそちらを参照。

2014年2月10日月曜日

phpMyAdmin: バージョンによっては xls ファイルのインポート機能がない

さくらのレンタルサーバで使用することができる phpMyAdmin で Excel ファイルからインポートすることができたが、自前でインストールしたところ Excel ファイルのインポートがなかった。(CSVファイルのインポートはあった)

古いバージョンだと Excel ファイルがあるが、新しいバージョンだと Excel ファイルからのインポートができないらしい。

さくらの phpMyAdmin のバージョンが 3.3.10 、phpMyAdmin の最新版が 4.1.7 だった。
phpMyAdmin へ Excel ファイルをインポートしたい場合は 3.3.10 などの古いバージョンを使用する必要がある。

新しいバージョンは Excel 形式がない

古いバージョンは Excel 形式がある

2014年2月9日日曜日

PS3: データのダウンロードが始まらない

PS3 でダウンロードソフトを購入した後に中々ダウンロードが始まらなかった。
調べてみたところ torune でテレビ番組を録画していたことが原因だった。

ダウンロードをバックグラウンドで実行する場合には、
ステータスが「ダウンロード中」になっていることを確認すること。
「ダウンロード待機中」になっている場合には、
別のソフトの動作によってダウンロードが停止している状態なので、
原因のソフトを終了させる必要がある。

2014年2月8日土曜日

Mac: Avira がアップデートできなくなる

Avira Mac Security をアップデートしようとすると以下のメッセージが表示されて失敗してしまう現象が発生。調べてみたところ再インストールするしかなさそうなので再インストールした。

アップデートしようとするとエラー

以下の様なエラーメッセージが出現してアップデートに失敗していた。
「Failed to update module 'METADATA': function open failed with code2.」

Application ディレクトリから Avira を削除すると自動的にアンインストーラーが起動するのでそのまま進めて削除。


その後、Avira の公式サイトから Mac 版を落としてインストール。(画面一番下にある)

Avira(アビラ)公式サイト


2014年2月7日金曜日

Excel: 空白のセルを探す

列にカーソルを合わせた状態で Ctrl + ↓ を押すと、自動的に空白直前のセルまでジャンプできる。これを使って空白の項目がないかチェックできる。データ量が多い時に便利。

参考
データの入っていない“空白セル”にキー操作で一発ジャンプ - ITpro
http://itpro.nikkeibp.co.jp/article/COLUMN/20070412/268093/

2014年2月6日木曜日

Inkscape: 複数の文字のフォントをまとめて変更

Shift を押しながら変えたい文字をすべて選択する。



その状態で文字ツールをクリック。



変更したいフォントを選択すればすべて一気に変わる。


2014年2月5日水曜日

jQuery: ajax で文字コードを指定して読み込む

Ajax で既存システムと通信するときに、
システムが EUC-JP とか Shift-JIS で結果を返してくる場合がある。
JavaScript のソースが UTF-8 だったりすると後々文字化けすることがある。

jQuery の $.ajax() で取得したデータを特定の文字列で読み込む場合は、
オプションの beforeSend へ関数を渡して、
その中で MIME Type に文字コードを指定してやればよい。

 beforeSend: function(xhr){
      xhr.overrideMimeType("text/html;charset=Shift_JIS");
 }


こちらのサイトに詳しく解説されていて助かった。

ajaxでutf-8じゃないと文字化けする対策 - purazumakoiの[はてなブログ]
http://purazumakoi.hatenablog.com/entry/20121205/1354689246

2014年2月4日火曜日

Mac: PDF を連結する

Mac でバラバラの PDF をつなげて1つの PDF にする。
まずは PDF ファイルを開く。デフォルトでは「プレビュー」で開かれる。


左上のプルダウンメニューからサムネイルを選択してサムネイルを表示。

追加したい PDF ファイルをサムネイルの上にドラッグすると連結できる。


同じようにして何枚でも繋げられる。

2014年2月3日月曜日

PHP: 数値をカンマで区切る

number_format() 関数を使用すると数値を 3 桁ごとにカンマで区切った形式の文字列に変換してくれる。
<php
    echo number_format(12345); // 12,345
>

number_format - PHP
http://jp1.php.net/manual/ja/function.number-format.php

2014年2月2日日曜日

jQuery: CSVパースのプラグイン

CSV ファイルを簡単に読み込んでくれる jQuery Plugin 「PaPa Parse」が便利でした。
MIT ライセンスで使用することができます。

デリミタなどをオプションとして指定すると、
String で渡した CSV ファイルをオブジェクトとして返してくれます。

jQuery の $.ajax() を使ってサーバ上の CSV ファイルをぱーすする場合は、
以下の様な感じになります。
var csv;
 
// CSVファイルの読み込み
$.ajax(CSV_PATH, {
    dataType: 'text',
    error: function(xhr, message) {
        console.log('CSVファイルが見つかりませんでした', message);
        alert('error');
    },
    success: function(data) {
        csv = $.parse(data, {
            delimiter: ',',
            header: true
        }).results.rows;
    },
    async: false
});

PaPa Parse by Matthew Holt
http://plugins.jquery.com/parse/

公式サイトはこちら
http://papaparse.com

2014年2月1日土曜日

Chrome: LEGO で遊ぶ

Chrome と LEGO がコラボした Web アプリ「Build with Chrome」では Google Chrome 上でレゴを楽しむことができます。



Web GL を使用して自由に LEGO を組み立てることができ、出来上がった作品は Google Map と同じインタフェース上で公開することができ、全世界の作品を 3D で楽しむことができます。作品を公開するとコンピュータの位置情報を元に地図上へ LEGO が表示されます。


スマホやタブレットでも動作するようです。紹介ムービーはこちら。


参考
Chrome + LEGO: You can build whatever you like - Google Official Blog
http://googleblog.blogspot.jp/2014/01/chrome-lego-you-can-build-whatever-you.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+blogspot/MKuf+(Official+Google+Blog)