我正在使用换行符将数据写入.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
做些什么?
答案 0 :(得分:1)
您需要使用
$lines = file($msg, FILE_IGNORE_NEW_LINES);
从manual ...
FILE_IGNORE_NEW_LINES
在每个数组元素的末尾省略换行符
如果没有此功能,您将在每行末尾看到多余的字符。