我和我的朋友一起有一点闲暇主页.他不是程序员,为了让他能够更改首页上的一些文字,我创建了一个php脚本,
1)从文件"tester.txt"读取数据(这是应该在首页上的文本)
2)将此文本打印到textarea,您可以在其中编辑文本并再次提交
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);
}
Run Code Online (Sandbox Code Playgroud)
我唯一的问题是,当文本被打印到文本区域时,行返回被写为<br>- 我真的不希望它这样做,因为当你编辑一些代码并重写它时,另一层<br>出现了.这是一个截图来说明:


这有什么解决方法吗?
谢谢!
如果您需要剩下的代码,这里是:
<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>
Run Code Online (Sandbox Code Playgroud)
nic*_*ckb 10
这比你想象的要简单.您不应该输出<br>标签,因为textarea已包含输入的换行符(\r\n或\n).您不必像这样读取文件,如果您以这种方式阅读,您永远不必担心字符内容.
更改:
$fp = fopen($file, "r");
while(!feof($fp)) {
$data = fgets($fp, filesize($file));
echo "$data <br>";
}
fclose($fp);
Run Code Online (Sandbox Code Playgroud)
至:
echo file_get_contents( $file);
Run Code Online (Sandbox Code Playgroud)
问题解决了.
| 归档时间: |
|
| 查看次数: |
13615 次 |
| 最近记录: |