Warning: count(): Parameter must be an array or an object that implements Countable in /usr/local/www/admnote/wp-includes/post-template.php on line 284

Windows版PHPで日本語を含むpathが扱えない

環境

  • Windows 10 Professional 64bit (バージョン1709)
  • Windows版PHP 7.2.2

問題

pathに「能」や「構」など、2バイト目が0x5Cである文字を含んでいると、chdir() などファイル操作系の関数に失敗する。調べてみたところ、「0x5C問題」とか「(Windowsの)ダメ文字」とか言われている、太古からある由緒正しい不具合だったらしい。

解決策

pathをSJISではなく、UTF-8で指定する。

PHP 7.1での修正により、UTF-8で渡してやれば問題なく操作できるようになっていた。

参考