2013-05-15 128 views
1

我注意到用於fgets(STDIN)在PHP的東西fgets(STDIN)自動換行符?

我有這樣的代碼:

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

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

我嘗試爲例,在我的文本文件的末尾插入:

helloWorld 

但我總是有:

helloWorld 
: 

不是:

helloWorld: 

stdin是否會自動換行?如何去除這個自動跳轉?

回答

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); 
} 
+0

THX! ** stream_get_line **「ne retourne pas ledélimiteurlui-même」沒有看到此屬性;) – mpgn