PHPにおけるforeachの構文

foreachって普通は

foreach($array as $key => $value){}

のように書くと思うけど、

foreach($array as $key => $value) :
endforeach;

って書いても同じみたい。HTML文の中に書くときとか、{}よりも見やすいね。
CakePHP勉強しててはじめて知った。

<?php foreach ($posts as $post): ?>
<tr>
    <td><?php echo $post['Post']['id']; ?></td>
    <td>
        <?php echo $html->link($post['Post']['title'], "/posts/view/".$post['Post']['id']); ?>
    </td>
    <td><?php echo $post['Post']['created']; ?></td>
</tr>
<?php endforeach; ?>

英語のメモ

使える略語 i.e. と e.g. (★★★ 上級)より,

i.e.は that is の略で「すなわち」「言いかえれば」の意味
    ラテン語の id est より

e.g.は for example の略で「例えば」「例をあげると」の意味
    ラテン語の exempli gratia より


仕事で英語を書く方は結構使える略語ですし、こなれた印象を与えます。
もちろん英語日記やプライベートな内容にも使えます(堅過ぎることはありません)。


使用例


You will bring two items i.e. a calculator and a triangle ruler.


2つのものを必ず持ってきてください、つまり、計算機と三角定規です。


Please provide the following information:
1. Your name:
2. Location where photo was taken: (e.g.: Yoyogi Park, Tokyo)
3. Your emai:


下記の情報をお願いします
1.お名前:
2.撮影場所(例:東京 代々木公園)
3.メールアドレス:


ネイティブが書いた文章や英字新聞でも見かける表現です。
是非使ってみて下さい。

よく文章で見かけて,その度に「あれ?どういう意味だったかな?」と思うので書いておく.

PHPにおけるorと||の違い

PHPでプログラミングをする時に,エラー処理を行いたい関数(ここではfooとする)がある場合,

<?php
$hoge = foo() or die('error');
?>

のように書くことが多いが,これを

<?php
$hoge = foo() || die('error');
?>

と書くと,期待通りに動作しないことがある.

http://php.benscom.com/manual/ja/language.operators.logical.phpに書いてある例を挙げると,

<?php
// "||" の優先順位は "or" より高くなります
$e = false || true; // $e に代入されるのは、(false || true) の評価結果、つまり true です
$f = false or true; // $f には false が代入されます
?>

となっている.
さらに, を参考にすると,=よりも||の方が優先順位が高く,=よりもorの方が優先順位が低くなっている.つまり,

<?php
$hoge = foo() || die('error');
?>

の例では,foo() || die('error')を先に評価しており,foo()が真の時は評価値がtrueになり,$hogeにはfoo()の返り値ではなくtrueが代入されることになる
一方,

<?php
$hoge = foo() or die('error');
?>

の場合は先に=演算子が適用されるので,$hogeにfoo()の結果がちゃんと格納される.$hogeにfoo()の結果を格納後に比較することになる.

orと||は別物だと思っておいたほうがいいのかも.

Mac版エクセルでセル内で改行を行う方法

Windows版のエクセルだと、alt+Enterでセル内で改行できたのですが、Mac版エクセルだと下のセルに移ってしまいます。
どうやらコマンドが違うみたいで、Mac版だとalt(option)+command(アップルマーク)+Enterで出来ました。

PHPでMecabを使う方法

MacOSXにおいてphp-mecabモジュールを導入してPHPからMecabを使おうとしたんですが、つまづいたのでメモに残しておきます。
基本的なphp-mecabのインストール方法はPHPからMecabを利用する拡張モジュール:phpspot開発日誌に書いてあるように、

$ cd php_mecab-0.2.0
$ /usr/bin/phpize
$ ./configure --with-php-config=/usr/bin/php-config \
--with-mecab=/usr/bin/mecab-config
$ make
$ sudo make install

でOKなのですが、例えばxamppなどを導入していて、PHPが複数インストールされている場合、以下のようにしてprefixをつけてやる必要があります。

./configure --with-php-config=/Applications/xampp/xamppfiles/bin/php-config \
--with-mecab=/opt/local/bin/mecab-config \
--prefix=/Applications/xampp/xamppfiles/bin/php

この際、prefixで指定するのは、使用したいPHPのプログラムの場所です。

RubyをApache2.2.9上で動かす方法

最近、Rubyを勉強していて、いよいよRubyをサーバー上で動かそうかと思ったのですが、その方法を調べても情報が古いのがほとんどで、書いてあることを試しても出来ませんでした。mod_rubyを導入する方法や、RORを導入する方法はあったのですが、Rubyだけを動かす方法はありませんでした。自分の中では、Perlを動かすのと同じ要領で動かせると思ってたので、簡単に見つかるだろうと思ったのですが…。そこで、今後同じ思いをするだろう人のために私がした設定方法を示したいと思います。私の環境はWindows Vista Home Premium SP1ですが、Apacheの設定は共通だと思われるので、多くの場合、以下の設定で動くようになると思います。また、Vistaのセキュリティ関係の設定はOffにしておくと設定がやりやすいと思います(Program Files内をいじるので)
参考 http://blogs.msdn.com/shintak/archive/2007/02/03/vista-uac.aspx

Apacheの設定(Apache2.2.9、Ruby1.8.6を使用)

C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf

テキストエディタで開きます(コピーを取って置くことを推奨します)。以下、C:\Program Files\にApacheをインストールしたものとして進めます。httpd.confが開けたら、

<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin">

と書いてある部分を探し、までを以下のように書き換えます。これでhtdocs内にcgiファイルを置いても動きます。

<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs">
    AllowOverride All
    Options +ExecCGI
    Order allow,deny
    Allow from all
</Directory>

次に、

#AddHandler cgi-script .cgi

と書かれた部分を探し、次のように変えます。

AddHandler cgi-script .cgi .rb

これで、拡張子がrbのファイルをcgiファイルとして扱ってくれます。ここまでの設定が終わったら、保存してApacheを再起動させて下さい。これでApacheの設定は終わりです。

そして、Rubyのプログラムですが、以下の記載がファイルの先頭に必要です。これはPerlの時と同じですね。

#!/Ruby/bin/ruby.exe
print "Content-type: text/html\n\n";

1行目の

/Ruby/bin/ruby.exe

の部分はRubyをインストールした場所を指定して下さい。私の場合はC:\Ruby\bin\ruby.exeにruby.exeがあるので、こうなっています(多分Cというドライブ名は省略できる)。
2行目の

print "Content-type: text/html\n\n";

は、これから表示する文章がどんなコンテントタイプを持っているかを示しています(今回はhtml)。なので、これがないとブラウザはちゃんと表示してくれません(500 Internal Server Errorになると思います。)
下はサンプルプログラムです。

#!/Ruby/bin/ruby.exe
print "Content-type: text/html\n\n";

print <<EOS
<HTML>
<HEAD>
</HEAD>
<BODY>
Hello!World
</BODY>
</HTML>
EOS

このプログラムを例えばtest.rbと名前をつけて保存して、htdocsに置いて下さい。
http://localhost/test.rbにアクセスして、Hello!Worldが表示されれば設定は成功です。

HP(ヒューレットパッカード)社のパソコンを使用した感想

HP(ヒューレットパッカード)社のPCを買いました. - Webアプリ開発手帳で述べたように、HP社のパソコンを買ったのですが、それが昨日、ようやく届いたので、レポしたいと思います。
なんでこんなに遅くなったかというと、購入したタイプがキャンペーン中だったので、在庫切れが発生してしまっていたからです。ちゃんと在庫が確保されてからは5営業日で届けてくれました。
で、使用した感想なんですが、以前のパソコンが6年前の物ということもあって、すごくサクサクと動く感じです。まぁ、スペックを見る限りでは、このパソコンで動かなかったらほとんどのパソコンで動かないんじゃないかっていうくらいのものだと思いますが…。
弱いところといえばグラフィックボードくらいですかね。そうそう、多分グラフィックボードが原因だと思うんですが、起動してからずっと「ジー」って音と「シャー」って音の中間点くらいの音がずっと出ています。グラフィックボードについているファンの音なんでしょうね。ちょっとググってみても、グラフィックボードはうるさいものだっていう感想がほとんどでした。どうやら、グラフィックボードのメーカーも騒音対策にはあまり力を入れていないようです。まぁ、ファンを取り替えるっていうのもしんどいし、とりあえずこのままで行く予定です。音楽をかけているときとかは全然気になりませんし。
ほかに気になったのは、キーボードとマウスですね。キーボードはとても軽くて薄く、キーがあまり浮き上がってないので、個人的には打ちにくくなりました。あと、エンターキーを押した時の音がとても静かなので、爽快感が薄れています(笑
マウスは良くもなく悪くもなくといった感じでしょうか。ただ、USB接続ではなかったので、その点は評価したいと思います。
あと、採用されているCPUがQ6600なんですが、オーバークロックもかなり可能なそうなので、相当このパソコンは使用に耐えうるのではないかと思っています。モニターも22インチでとても見やすいです。以前が15インチだったので余計に…(^^;
今は、テレビチューナーを取り付けようかと思っています。デジタルとアナログで迷ったのですが、まだデジタルの方は制限が多そうなので、アナログでいこうかと思っています。
価格.com - バッファロー PC-MV5L/PCI 価格比較