如何用file_put_contents将输入空格转为 写入TXT文件?
解决输入框空格转
写入TXT文件的问题 嘿,我懂你的困扰啦——你想把输入框里的空格转换成 再写入文本文件,但用htmlentities()没达到预期效果,对吧?
为什么htmlentities()没用?
htmlentities()的默认功能是转义HTML特殊字符(比如&、<、>、"这些),普通空格并不在它的转义列表里,所以输入的空格只会被保留成普通空格(有时候在文本编辑器里开头的空格可能不太显眼,甚至看起来像“消失”了,但它其实是存在的),不会变成你需要的 。
解决方案:手动替换空格
你只需要在处理输入内容时,把普通空格替换成 就行。如果还需要保留对其他HTML特殊字符的转义,可以分两步处理:
修改后的完整代码
<?php if($_SERVER['REQUEST_METHOD'] == 'POST') { if( isset($_POST['translation']) ) { // 第一步:转义HTML特殊字符(可选,如果你需要处理<>&等字符的话) $translation = htmlentities($_POST['translation']); // 第二步:把所有普通空格替换成 $translation = str_replace(' ', ' ', $translation); $translation_input = $translation.PHP_EOL; $translationfile = 'data/translations.txt'; // 如果你想追加内容而不是覆盖文件,加上FILE_APPEND | LOCK_EX参数 // file_put_contents($translationfile, $translation_input, FILE_APPEND | LOCK_EX); file_put_contents($translationfile, $translation_input); } } ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" role="form"> <input class="form-control" name="translation" type="text" value="" /> <button type="submit" name="submit" class="btn btn-primary w-100">UPDATE/TRANSLATE</button> </form>
(另外注意我给action属性加了echo,原代码里没输出,会导致表单提交到当前页面的空路径,虽然大部分情况下也能工作,但加上echo更规范)
简化版(不需要转义其他HTML字符)
如果你的输入里不会有<、>这类需要转义的HTML特殊字符,直接用下面这行替换原有的htmlentities行就行:
$translation = str_replace(' ', ' ', $_POST['translation']);
这样修改后,当你输入“ test”时,文本文件里就会准确写入 test啦。
内容的提问来源于stack exchange,提问作者john
相关产品推荐
相关产品推荐

