使用 php 读取文件时删除文本区域中的换行符
Posted
技术标签:
【中文标题】使用 php 读取文件时删除文本区域中的换行符【英文标题】:Removing Newline in a textarea when reading file with php 【发布时间】:2017-07-27 19:40:11 【问题描述】:我需要一个带有文本区域的表单,它保存到一个文本文件中。此表单应在页面刷新时从文件中加载文本,以便可以更改文本。几乎一切正常,但是当我点击发送并且页面重新加载时,我在 textarea 中得到一个换行符。文本保存在末尾没有换行符。问题是每次我保存文件时,当我忘记删除它时,最后都会得到一个新的换行符。我已经尝试在文本区域中显示之前修剪文本,但这并不能解决问题。在我看来,这是 textarea 的一种奇怪行为,或者我只是错过了一些东西。也许你们可以帮助我。
这是我的代码:
<?php
if($_POST['text'])
$file = fopen("test.txt","w+");
fwrite($file, $_POST['text']);
fclose($file);
?>
<form action="<?=$PHP_SELF?>" method="POST">
<textarea name="text" COLS=60 ROWS=8 wrap=hard>
<?php
$lines = file('test.txt');
foreach($lines as $line)
echo $line;
?>
</textarea>
<br>
<input type="submit" name="button">
</form>
PS:我喜欢这个社区,并在这里解决了我的许多问题。这是我第一次亲自问你。我对 php 很陌生,所以请温柔:D
【问题讨论】:
【参考方案1】:您只需删除 </textarea>
之前的换行符,因为您的浏览器会将其作为 textarea 标记中的换行符。
【讨论】:
就像我说的我已经尝试过修剪功能。我需要保留换行符。只是在 textarea 末尾添加的那个不应该在那里。即使我使用 trim(readfile("test.txt")) 文本区域在换行符处显示光标,而不是在文本末尾。 好的,你可以剪掉最后一行。我更新了我的答案以满足您的需求 已经尝试过了,但它不起作用:( php 代码似乎是正确的,但在 textarea 的末尾仍然创建了一个换行符。 您的文件末尾可能有一个尾行。尝试var_dump($lines);
显示正在发生的事情。
<pre class='xdebug-var-dump' dir='ltr'> <small>/var/www/html/tmp/src_4c7d4e9479fa0a9ddb02f835d5ac3240:21:</small> <b>array</b> <i>(size=1)</i> 0 <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'TEST'</font> <i>(length=4)</i> </pre>TEST
这是我的 var_dump,没有尾随行。以上是关于使用 php 读取文件时删除文本区域中的换行符的主要内容,如果未能解决你的问题,请参考以下文章