Open yama opened 2 years ago
base64形式のエンコードは色々面倒ですし、JSONとかにしたいですね!
json関数が使えるようになったのはPHP5.2あたりで、PHP5.3で安定して使えるようになったと思います。 当時はPHPのアップデートを敬遠する人が多くて、たぶん仕方なくこうしたんですね。 対応するとしたらアップデート処理に仕込んでデータを変換するといいと思います。 これを改善するとDBを直接開いて問題点を調べたりできるし、めっちゃ便利になると思います。
http://project.e-catchup.jp/issues/5484 ここの変更っぽいですねー
概要
https://github.com/baserproject/basercms/blob/basercms-4.5.2/lib/Baser/Lib/BcUtil.php#L273-L283 DBに格納されているはずの文字列が見つからず、処理を追ってみるとデータが base64形式でエンコードされていることが分かりました。 昔よくあったマルチバイト起因のデータ破損を防ぐための処理だと思いますが、 最近のサーバ環境なら問題ないかなと・・ 今後はシリアライズされたデータをそのまま格納するとよいのではと思いますが、 いかがでしょう? 既存のデータの互換性については、コロンを含むかどうかで処理を分けると いいかと思います。
(追記) json形式なら壊れにくいと思いますが、いかがでしょうか?この部分の処理が 追加された2014年頃はjsonはPHPが少し古いと使えないことがあったので 敬遠されていたと思いますが、今なら問題ないかと・・