用PHP_EOL在txt文件中写入数据时如何摆脱空间

时间:2019-11-03 15:35:53

标签: php fwrite

我正在使用换行符将数据写入.txt文件:

// put content in .txt file with linebreaks; unique_id first
        $userinput = $unique_id.PHP_EOL;
        $userinput .= date('d M Y h:i').PHP_EOL;
        $userinput .= $userinput1.PHP_EOL;                                                                              
        $userinput .= $userinput2.PHP_EOL;

        $messagefile = './messages/';
        $messagefile .= $unique_id . '.txt'; //name of the file is the same as unique_id

        // create file in messages folder
        $h = fopen($messagefile, 'w+');
        fwrite($h, html_entity_decode($userinput));
        fclose($h);

我的.txt文件现在看起来像这样:

20191103135045 // unique id = date
03 Nov 2019 01:50
John
Lorem ipsum dolor sit amet

要读取.txt文件的第一行,请使用以下代码:

// get data out of txt file 
    $msg = '../messages/';
    $msg .= $file;
    $fh = fopen($msg, 'r'); 
    $lines = file($msg);// filedata into an array

    $file_id = $lines[0]; // file id

现在以以下形式使用第一行的内容(唯一ID或日期):

<input type="hidden" class="form-control" name="delete_file" value="<?php echo $file_id; ?>" /> 

当我回显隐藏的输入字段的值时,它表示其后有一个space

if(isset($_POST['delete_file'])) {
        $filename = '../messages/'.$_POST['delete_file'].'.txt';
        echo $filename;

我当时的回声是这样的:20191103135045.txt

但这是20191103135045 .txt

那么5.之间的空间是哪里来的? 当我将内容放入PHP_EOL文件中时,它必须与.txt做些什么?

1 个答案:

答案 0 :(得分:1)

您需要使用

$lines = file($msg, FILE_IGNORE_NEW_LINES); 

manual ...

  

FILE_IGNORE_NEW_LINES

     

在每个数组元素的末尾省略换行符

如果没有此功能,您将在每行末尾看到多余的字符。