PHP7.1で日本語ファイル名問題(5c問題)が解決へ

PHPの更新ニュースを見ていたら

PHP 7.1.0 alpha2
. Fixed UTF-8 and long path support on Windows. (Anatol)

なんかピンと来るものがあったので早速ダウンロード

PHP7.1を試してみる

<?php
//このPHPは7.1です
//このOSはWindows10です
//このファイルはUTF-8です

mkdir("表"); //これだけで表ディレクトリが作成される
file_put_contents("表/表ソ十.txt", "あ"); //ファイルもきちんと作成される
print filesize("表/表ソ十.txt"); //ファイルサイズもきちんと表示される

PHPをUTF-8で記述したときにそのまま日本語ファイル名を扱えるようになりました

パスを返す系もUTF-8で返ってくる

パスを返してくる関数は、パスをUTF-8で返してくるようになりました
glob scandir readdir pathinfo realpath __FILE__などのことです

glob("./*"); //PHP7.0まではSJISで返ってくる
glob("./*"); //PHP7.1からはUTF-8で返ってくる

PHP5.3.0以来、ようやく日本語ファイル名問題が解決したかな?

コンソール出力もUTF-8対応に

前準備として、コマンドプロンプトのタイトルバーを右クリック→プロパティ→フォントをMS ゴシックに。フォントを変更しないと文字化けします

<?php
//このPHPは7.1です
//このOSはWindows10です
//このファイルはUTF-8です

print "あいうえお"; //これだけで文字化けせずに表示される

※ただ自分の環境だと文字が欠けて「あい(う)」となってしまう。「う」は左半分だけ表示される謎仕様。プロパティ→OKで直るが対処療法的

広告
カテゴリー PHP

コメントをどうぞ~

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中