PHP_EOL

一応、昨日でMac miniでZend Frameworkの開発環境が整ったはずなので、ソースを持ってきて実験してみた。
と言っても、最新ソースのあるubuntuマシンはキーボード、マウス、ディスプレイをMac miniに付け替えてしまっているので、立ち上げてネットワーク経由とかUSBメモリ経由とかで持ってこれない。
一応、ホームディレクトリをSAMBA共有かけているので電源が入ればなんとかなるかもしれないが、不幸にして電源はすべてMacが占領している。
仕方がないので、本番環境のものをコピーした。
MacのSambaでのコピーはコピーしたアカウントのみにアクセス権がつく(600)ので、いちいちchmodするのが面倒だったが、なんとかアクセス可能な状態に持っていった。
Apacheの設定は.htaccessを使うので、AllowOverriedeを有効にするだけで済んだ。
実行できたとき、画面に「¥n」が表示された。ソース整形のために入れている改行コードだ。
miエディタで開いたところを見るとLFになっている。Linuxで元を書いているから当然か。
Linuxサーバで動いているものをMacで見る時にはこのような問題は起こっていないので、調べてみた。
すると、実行環境のOSの標準改行コードに依存するようで、Macで実行するなら、CR、つまり¥rにすべきだということがわかった。
さらに、それを避けるためにPHPにはPHP_EOLという定数が定義されていて、これを用いると実行環境に合わせた改行コードに展開される、という仕組みらしい。
確かに、これに置き換えて実行したところ「正常な」画面として表示された。
昨日のインストールといい、この改行コードの問題といい、はっきり言って「物好き」な部類だな。
でも、Webシステムは環境を問わない、というのが売りのはずなので、Macで開発してLinuxのサーバで動かして、Windowsのブラウザで見る、というのも面白いのではないか、と思う今日この頃なのであった。

コメント