Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mb_strtolower( が使われている箇所にフォールバックを入れる #786

Open
3 tasks
kurudrive opened this issue Mar 4, 2022 · 2 comments
Open
3 tasks

Comments

@kurudrive
Copy link
Member

kurudrive commented Mar 4, 2022

サーバーによって落ちてしまうため一応 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 も
@kurudrive kurudrive changed the title mb_strtolower( ga mb_strtolower( が使われている箇所にフォールバックを入れる Mar 4, 2022
@drill-lancer
Copy link
Member

今回の件は yum install php-mbstring で解決したということは
php-mbstring が入っていない環境では軒並み落ちるということになります。

php-mbstring が関係しそうな関数は下記にまとめられています。
https://www.php.net/manual/ja/ref.mbstring.php

mb_strtolower の場合

  • mb_strtolower が存在すれば mb_strtolower を実行
  • そうでなければ strtolower を実行

という処理のほうが良さそうな気がします。

@mthaichi
Copy link
Contributor

mthaichi commented Mar 29, 2022

mb_strtolowerは全角英数の小文字化にも対応してくれるというだけですので、全角を考慮する必要がない場面であれば、 単にstrtolowerで代用すれば良いと思います。

↓こんな感じのを定義しておくのもありかなと。

if ( ! function_exists( 'mb_strtolower' )) {
 function mb_strtolower($str) {
   return strtolower($str);
 }
}

ちなみに、日本語環境の場合ですと、mbstring入っていないのは致命的というかありえないぐらいなので、レンタルサーバーであれば、絶対入っている思います。よってVPSで自主サーバー管理しているようなユーザーで自分でPHPを入れて、mbstringモジュール入れ忘れた的なケースが多いと思います。

とはいえ、海外環境の場合はmbstring入っていないことはありえるので、mb系の関数使っている箇所は考慮したほうがよさそうですね。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants