2

我注意到 php 中的 fgets(STDIN)

我有这个代码:

if($fd = fopen($filename, "a")){

    $message = fgets(STDIN);
    $message = $message.":";
    echo $message;
    //fwrite($fd, $message);
    fclose($fd);
}

我尝试在我的文本文件末尾插入示例:

helloWorld

但我总是有:

helloWorld
:

不是 :

helloWorld:

标准输入是否自动换行?怎么去掉这个自动跳转?

4

1 回答 1

2

使用stream_get_line而不是 fgets:

if($fd = fopen($filename, "a")){
    $message = stream_get_line(STDIN, 1024);
    $message = $message.":";
    echo $message;
    //fwrite($fd, $message);
    fclose($fd);
}

或者您可以使用rtrim函数删除行尾:

if($fd = fopen($filename, "a")){

    $message = fgets(STDIN);
    $message = rtrim($message, "\n\r") . ":";
    echo $message;
    //fwrite($fd, $message);
    fclose($fd);
}
于 2013-05-15T09:01:45.747 回答