2

PHPのfgets(STDIN)で何かに気づきました

私はこのコードを持っています:

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

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

たとえば、テキストファイルの最後に挿入しようとしています:

helloWorld

しかし、私はいつも持っています:

helloWorld
:

いいえ :

helloWorld:

stdin は自動改行を行いますか? この自動ジャンプを削除するには?

4

1 に答える 1

2

fgets の代わりにstream_get_lineを使用します。

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 に答える