Php 从命令行读取输入
我已经有了这个功能很长一段时间了,到现在为止,它一直为我服务。非常简单的脚本,我在命令行中运行它(windows,我相信命令提示符是合适的术语),我得到了奇怪的结果,请参阅Php 从命令行读取输入,php,Php,我已经有了这个功能很长一段时间了,到现在为止,它一直为我服务。非常简单的脚本,我在命令行中运行它(windows,我相信命令提示符是合适的术语),我得到了奇怪的结果,请参阅 function readline($prompt = '') { echo $prompt; return rtrim(fgets(STDIN), "\n"); } $name = readline('Enter Name: '); exit($name . 'dgd'); 而不是预期的bratdgd
function readline($prompt = '') {
echo $prompt;
return rtrim(fgets(STDIN), "\n");
}
$name = readline('Enter Name: ');
exit($name . 'dgd');
而不是预期的
bratdgdgd
。任何人都可以告诉我发生了什么?在Windows上,换行符由“\r\n”
字符序列表示,而不仅仅是“\n”
。你也需要修剪一下
如果忽略第二个参数,将修剪所有空白:
function readline($prompt = '') {
echo $prompt;
return rtrim(fgets(STDIN));
}
Windows行结尾为CRLF-
\r\n
您已经删除了\n
,只剩下\r
,它本身会将光标移动到当前行的开头,并覆盖其中的内容
因此
brat \r here
dgd overwrites the above line
dgdt result