« ASUS MeMO Pad 7 ME572CL タッチパネルが反応しない | トップページ | 3月の「犬とゆく」 »

2017年4月 3日 (月)

php 5.3 から 7.0 へ (見事に文字化け)

「犬とゆく」で php を使うようになって15年以上経つ。使うといってもプログラムを組んで動くようになったら放置。なので進歩しない。
私は進歩しなくても、php は進歩してゆく。クラスとかオブジェクトは最低限の考えになっているようですが、昔からのコードにはそんなものはありませんcoldsweats01。それでも動いているのでいいのですbleah

先日、サーバーの増強&諸々のバージョンアップがあった。php も 5から7へと。
メンテナンスが終わって「犬とゆく」を表示させてみたら、見事に文字化けsad。焦って、設定で、5.3 に戻す。

色々調べたら、php7 では、文字コードを utf-8 で処理することになっているそうだ。昔、utf-8 で作るのは面倒だったので、日本国内で一般的な、Shift-JIS で作ってきた。
さて、このまま5で続けても数年で使えなくなるだろう。7対応をしたい。たぶん、エンコードを変えるだけで動くのであれば当分延命出来る。

色々と調べた結果、以下の一文を他の出力に先だってしておけばいいことが分かりました。

header("Content-Type:text/html;charset=shift_jis");

分かってしまえば簡単なこと。これだけで現在、7で動いています。
日々触れている人には当たり前のことだと思いますが、年に1~2回しかいじらない人間にはこれだけのことを理解し、対応するのに一日かかってしまいましたweep

 

その後、php7 に関する書籍を購入しようとネット上で探したのですがあまりない。世の中、本当にペーパーレスの時代がくるのかもしれませんね。

 

仕方ないので、ネット上で注意点を探して読んでた。本家のphp.netのドキュメントはこちら

冒頭に書いたようなクラスとかそういうものに関係することがほとんどで、私には関係ないと思っていたら、なんと、ereg系関数がなくなった!
焦って自分のコードを確認したら、何年か前に上手く動かなくなったので、preg_match に書き換えていたのですが、mb_ereg系が残っていました。
これについて調べたら、php7 でも  mb_ereg系は残っていましたhappy01

 

さてさて、あと何年動いてくれるかな。

|

« ASUS MeMO Pad 7 ME572CL タッチパネルが反応しない | トップページ | 3月の「犬とゆく」 »

コメント

コメントを書く



(ウェブ上には掲載しません)




« ASUS MeMO Pad 7 ME572CL タッチパネルが反応しない | トップページ | 3月の「犬とゆく」 »