gpt4 book ai didi

php - 文件 I/O 到 PHP 中的文本区域

转载 作者:可可西里 更新时间:2023-11-01 00:06:37 25 4
gpt4 key购买 nike

我和我的 friend 在业余时间一起制作了一个主页。他不是程序员,为了让他能够更改首页上的一些文本,我创建了一个 php 脚本

1) 从文件“tester.txt”中读取数据(这是应该出现在首页的文本)
2) 将此文本打印到文本区域,您可以在其中编辑文本并再次提交
3) 将编辑后的文本写入同一个文件“tester.txt”

两个函数Read();和写();看起来像这样

function Read() {
$file = "tester.txt";
$fp = fopen($file, "r");
while(!feof($fp)) {
$data = fgets($fp, filesize($file));
echo "$data <br>";
}
fclose($fp);
}

function Write() {
$file = "tester.txt";
$fp = fopen($file, "w");
$data = $_POST["tekst"];
fwrite($fp, $data);
fclose($fp);
}

我遇到的唯一问题是,当文本打印到文本区域时,行返回写为 <br> - 我真的不希望它这样做,因为当你编辑一些代码并重写它时,另一层 <br>的出现。这是一个截图来说明:

Test 1

Test 2

有什么解决办法吗?

谢谢!

如果您需要其余代码,请在此处:

<html>
<head>
<title>Updater</title>
</head>
<body>
<?php
function Read() {
$file = "tester.txt";
$fp = fopen($file, "r");
while(!feof($fp)) {
$data = fgets($fp, filesize($file));
echo "$data <br>";
}
fclose($fp);
}

function Write() {
$file = "tester.txt";
$fp = fopen($file, "w");
$data = $_POST["tekst"];
fwrite($fp, $data);
fclose($fp);
}
?>

<?php
if ($_POST["submit_check"]){
Write();
};
?>

<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
<textarea width="400px" height="400px" name="tekst"><?php Read(); ?></textarea><br>
<input type="submit" name="submit" value="Update text">
<input type="hidden" name="submit_check" value="1">
</form>

<?php
if ($_POST["submit_check"]){
echo 'Text updated';
};
?>


</body>
</html>

最佳答案

这比你想象的要简单。你不应该输出 <br>标记,因为文本区域已经包含输入的换行符( \r\n\n )。你不必那样读文件,如果你这样读,你永远不必担心字符内容。

改变:

$fp = fopen($file, "r");
while(!feof($fp)) {
$data = fgets($fp, filesize($file));
echo "$data <br>";
}
fclose($fp);

到:

echo file_get_contents( $file);

问题已解决。

关于php - 文件 I/O 到 PHP 中的文本区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8315475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com