電通大夜間生のナポリタンのブログ

日々の生活、喜びと悲しみ、特別な出会い、ちょっとした考えや思いつきをブログに書き残してださい。

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してから文字列比較したほうが良い。