You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用file_put_contents将输入空格转为 写入TXT文件?

解决输入框空格转 写入TXT文件的问题

嘿,我懂你的困扰啦——你想把输入框里的空格转换成 再写入文本文件,但用htmlentities()没达到预期效果,对吧?

为什么htmlentities()没用?

htmlentities()的默认功能是转义HTML特殊字符(比如&、<、>、"这些),普通空格并不在它的转义列表里,所以输入的空格只会被保留成普通空格(有时候在文本编辑器里开头的空格可能不太显眼,甚至看起来像“消失”了,但它其实是存在的),不会变成你需要的&nbsp;。

解决方案:手动替换空格

你只需要在处理输入内容时,把普通空格替换成&nbsp;就行。如果还需要保留对其他HTML特殊字符的转义,可以分两步处理:

修改后的完整代码

<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
    if( isset($_POST['translation']) ) {
        // 第一步:转义HTML特殊字符(可选,如果你需要处理<>&等字符的话)
        $translation = htmlentities($_POST['translation']);
        // 第二步:把所有普通空格替换成&nbsp;
        $translation = str_replace(' ', '&nbsp;', $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(' ', '&nbsp;', $_POST['translation']);

这样修改后,当你输入“ test”时,文本文件里就会准确写入&nbsp;test啦。

内容的提问来源于stack exchange,提问作者john

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 07:42:56