使用在 windows 2000 中运行的 PHP 使用 mozilla 版本 10 生成带有新行的文本文件
Posted
技术标签:
【中文标题】使用在 windows 2000 中运行的 PHP 使用 mozilla 版本 10 生成带有新行的文本文件【英文标题】:Generate text file with new line using PHP running in windows 2000 using mozilla version 10 【发布时间】:2020-03-07 16:28:59 【问题描述】:我正在使用 php 生成一个文本文件,该文件用于装有 windows 2000 操作系统和 mozilla firefox 浏览器的计算机(请不要问为什么)。该文件在 windows 10 和最新版本的火狐上正确生成并运行流畅。
我现在的问题是新行在旧版本(windows 2000 OS 和 firefox 10)中不渲染
我试过用ff:
1. /n
2. /r/n
3. <br>
4. $string = "This\r\nis\n\ra\nstring\r"; echo nl2br($string);
5. PHP_EOL
所有都没有生成所需的输出。它只是将 BR 附加为文本
代码是:
header("Content-Type: text/html; charset=UTF-8");
header("Content-Type: multipart/form-data; boundary=something");
header("Content-Length: ".strlen($data)."");
header("Content-Disposition: attachment; filename=".$_GET['name']."");
echo nl2br(base64_decode($data));
示例文本为:"Assembly Lot Summary Report " . "\r\n" . "\r\n" ;
FYI
: Notepad(only) 用于打开文本文件
【问题讨论】:
添加最小的 HTML 结构:<html><head></head><body>your text here</body></html>
。首先创建静态文件会有所帮助。也许浏览器会漏检。
@DanielSęk 它适用于较新的操作系统和 mozilla firefox 版本。新行按预期添加。我唯一的假设是因为 mozilla 和操作系统的版本太旧了
您想为记事本生成纯文本文件(在这种情况下使用nl2br
没有意义)或HTML 文件以在浏览器中打开(在这种情况下<br>
将被正确解释) .
不幸的是要求是使用记事本
确保生成的文件有\r\n
行结束。较旧的记事本(例如在 Windows XP 中)无法正确处理仅以 \n
结尾的行尾。使用@Jimmix 所写的text/plain
,不要使用nl2br
。使用十六进制编辑器查找生成的行尾。您还可以手动转换行尾(取决于客户端计算机)并将文件作为application/octet-stream
(二进制流)发送。
【参考方案1】:
如果您想在文本编辑器中按回车键时以相同的方式换行,那么标题应该是:
Content-Type: text/plain
而不是
Content-Type: text/html;
因此网络浏览器确切地知道您要传递一个文本文件。
您可以通过检查页面源来仔细检查新行是否返回到浏览器 - 转到菜单 > 编辑 > 查看源或点击 CTR+U
我也会尝试删除这一行:
header("Content-Type: multipart/form-data; boundary=something");
看看有没有帮助。
为了从 php 生成新行,你可以使用:
echo "\n";
或
echo PHP_EOL;
它将为您提供取决于 Web 服务器 操作系统的新产品线 - 对于 Linux 和 Windows 不同。
这些在 PHP 中是不正确的:/r
或 /n
。您需要使用反斜杠,并且它们仅在使用双引号“\n”more read 时才有效。
更多阅读text/plain
【讨论】:
我没有使用文本的原因是因为使用 时它只会输出 我使用\n
。还是没用以上是关于使用在 windows 2000 中运行的 PHP 使用 mozilla 版本 10 生成带有新行的文本文件的主要内容,如果未能解决你的问题,请参考以下文章
Windows上的PHP / cURL安装:“找不到指定的模块。”
Windows 上的 PHP/cURL 安装:“找不到指定的模块。”
在windows 2000 server中如何配置技术.net的IIS运行环境?
Windows 2000 和 Windows 2003 RC2 使用 Windows Crypto API 加密/解密?