php - fgets(STDIN) 自动换行?

标签 php text-files stdin fopen fwrite

我注意到 php 中的 fgets(STDIN) 有一些东西

我有这个代码:

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

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

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

helloWorld

但我总是有:

helloWorld
:

不是:

helloWorld:

stdin 是否会自动换行?如何去掉这个自动跳转?

最佳答案

使用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);
}

关于php - fgets(STDIN) 自动换行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16560755/

相关文章:

c - 从标准输入 C 读取所有数据

php - 获取最常用的带有特殊字符的单词

javascript - 如何从 JSON 获取多个数据的 ajax 响应?

php - 即使在 HTTP 500 内部服务器错误之后,是否可以保持 PHP 脚本运行?

unix - 计算文件中的空白行数

c - 在 C 中安全丢弃可变长度的标准输入字符的正确方法是什么?

php - 如何将 2 个表合并到第三个表 SQL 中而不覆盖?

android - 无法在内部存储中找到保存到文本文件的数据,如何将文件保存在内部存储 android studio 中?

python - If Else 语句、AND OR 逻辑运算和文本文件(使用 Python)

shell - Docker:在容器中运行的spigot控制台上执行命令