php consoleでyes noを入力させたい
php consoleでyes noを入力させて処理を分岐したいけど
http://note.onichannn.net/archives/1136
while
(1) {
$input
=
fgets
(STDIN, 4096);
if
(
$input
==
"n\n"
||
$input
==
"no\n"
) {
// 処理を終了する
die
();
}
if
(
$input
==
"y\n"
||
$input
==
"yes\n"
) {
// 処理を続行する
break
;
}
echo
'[y] [yes] [n] [no] のいずれかを入力してください : '
;
}
こうやって書いたら無限ループした
fgetsしたものをtrimして
if($input == "n" || $input == "no") {
$flag = false;
break;
}
if($input == "y" || $input == "yes") {
$flag = true;
break;
}
判定をこうしたら行けた
y[Enter]をfgetsしたものの中身をhex2dumpすると
[790d0a]と出た
asciiコードで確認すると
79: y
0d:<CR>
0a:<LF>
"y\n"をhexdumpすると
[790a]と出た
改行コードがOSによって異なるのでtrimしてから文字列比較したほうが良い。