【PHP】PHP7.1で暗号化・復号化

5年前に書いた記事

【PHP】シンプルに暗号化・復号化する

の内容がPHP7.1では非推奨になってしまったようなので
OpenSSLを使う新しい方法で暗号化・復号化をしてみました。

特にインストールが必要なものはありません。

【Linux】CentOS6.5でPHP5.3をいきなりPHP7.1にする

PHPのシステム開発でPHP7以上が要求される案件も増えてきていると思います。

でもCentOS6.5での標準はすでにサポートが切れて久しいPHP5.3です。
そろそろ「PHP5.3で稼働しています」と言うのが恥ずかしくなってきました。

意を決してPHP7にバージョンアップすることにしたのですが、
まずは本番サーバーで試す前に
スタンバイサーバーでPHP7.1にバージョンアップしてみました。

すぐにWebサーバーを再起動して動作確認しましょう。

ちなみに私のサーバーでは、なんとPHP4の名残でコンストラクタの定義でクラス名を使っていたところがあって、エラーになってました。

【PHP】日本語でも英語でもない言語でのメール送信

日本語のメールを送信するプログラムとして

こんな感じのシステムがありました。(かなり省略してます)

これで日本語のメールは問題なく送信できるのですが、
このシステムをコピーしてベトナム語版を作ろうという話になりました。

WEBやメールの日本語の文言をすべて外だしにし、
言語に応じたメッセージを入れるように改修しました。

しかしベトナム語のメールが文字化けしました。

当然ですね。

この部分、

に修正、これで文字化けは解決、多言語に対応するメール送信プログラムになりました。

【PHP】取得した現在日時が9時間ずれているときは

PHPでdateやstrtotimeで取得した現在日時が9時間ずれているときは、
日本ではないタイムゾーンが設定されている可能性があります。

まず確認すべきは php.iniのdate.timezoneの設定です。

になっていない場合は修正します。

もしレンタルサーバーなどの制限でphp.iniが編集できない場合は、コード上で

でタイムゾーンを設定できます。

ほとんどの場合はこれで解決なのですが、
たまに、外部ライブラリを使用していると
上記のようにタイムゾーンを指定しているにも関わらず
時間のずれが直らない場合があります。

そんなときは、strtotimeでずれた分だけ時間をずらし返してやりましょう。

スマートではないかもしれませんが
こういう臨機応変な対応もときにはアリだと思います。