vk-all-in-one-expansion-unit
vk-all-in-one-expansion-unit copied to clipboard
mb_strtolower( が使われている箇所にフォールバックを入れる
サーバーによって落ちてしまうため一応 function_exixt を経由させる。 ない場合はそのままスルーさせる(誤動作の可能性はあるがサーバーが落ちる方が良くないため)
https://vws.vektor-inc.co.jp/forums/topic/%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e3%82%a8%e3%83%a9%e3%83%bc%ef%bc%9avk-all-in-one-expansion-unit_vk-block-patterns#post-62673
- [ ] ExUnit
- [ ] VK Block Patterns
- [ ] おそらく VK Block Pattern Plugin Generator も
今回の件は yum install php-mbstring で解決したということは php-mbstring が入っていない環境では軒並み落ちるということになります。
php-mbstring が関係しそうな関数は下記にまとめられています。 https://www.php.net/manual/ja/ref.mbstring.php
mb_strtolower の場合
- mb_strtolower が存在すれば mb_strtolower を実行
- そうでなければ strtolower を実行
という処理のほうが良さそうな気がします。
mb_strtolowerは全角英数の小文字化にも対応してくれるというだけですので、全角を考慮する必要がない場面であれば、 単にstrtolowerで代用すれば良いと思います。
↓こんな感じのを定義しておくのもありかなと。
if ( ! function_exists( 'mb_strtolower' )) {
function mb_strtolower($str) {
return strtolower($str);
}
}
ちなみに、日本語環境の場合ですと、mbstring入っていないのは致命的というかありえないぐらいなので、レンタルサーバーであれば、絶対入っている思います。よってVPSで自主サーバー管理しているようなユーザーで自分でPHPを入れて、mbstringモジュール入れ忘れた的なケースが多いと思います。
とはいえ、海外環境の場合はmbstring入っていないことはありえるので、mb系の関数使っている箇所は考慮したほうがよさそうですね。