как избавиться от места при записи данных в текстовый файл с помощью PHP_EOL - PullRequest
0 голосов
/ 03 ноября 2019

Я записываю данные в файл .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

Теперь используется содержимое первой строки (уникальный идентификатор или дата) в форме:

<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 Ответ

1 голос
/ 03 ноября 2019

Вам необходимо использовать

$lines = file($msg, FILE_IGNORE_NEW_LINES); 

Из руководства ...

FILE_IGNORE_NEW_LINES

Пропустите символ новой строки в конце каждого элемента массива

, без этого будут дополнительные символы, которые вы видите в конце каждой строки.

...