PHP实现textarea加载文本文件内容失败,求技术支援
解决textarea无法显示本地文件内容的问题
我帮你排查出几个导致问题的小细节,调整后就能正常工作啦:
问题根源
- 你的
<form>标签没有指定method="POST",浏览器默认会用GET请求提交表单,导致PHP里判断$_SERVER['REQUEST_METHOD']=='POST'的逻辑永远不会触发,自然不会读取文件内容。 - PHP代码的位置不合理:你把PHP代码放在body标签内,但实际上需要在输出textarea之前执行PHP逻辑,这样
$text的值才能正确渲染到textarea中。 - 按钮最好显式声明
type="submit",避免部分浏览器的兼容问题。
修正后的完整代码
<?php $text = ""; if($_SERVER['REQUEST_METHOD'] == 'POST'){ // 检查文件是否存在,避免读取失败 if(file_exists("myfile.txt")){ $myfile = fopen("myfile.txt", "r"); $text = fread($myfile, filesize("myfile.txt")); fclose($myfile); } else { $text = "文件不存在!"; } } ?> <!DOCTYPE html> <html> <body> <form method="POST"> <h1>Write:</h1> <textarea><?php echo $text; ?></textarea> <button type="submit">POST</button> </form> </body> </html>
额外优化说明
我还加了file_exists的判断,避免当myfile.txt不存在时出现报错,提升代码的健壮性。现在点击POST按钮,表单会发送POST请求,PHP读取文件内容并赋值给$text,最后textarea就会显示文件里的内容啦。
内容的提问来源于stack exchange,提问作者Aseel.kkh
相关产品推荐
相关产品推荐

