0

当我尝试创建文件时,我无法进行换行/回车。为什么它不起作用?我试过:

  • PHP_EOL
  • \n

但是当我用记事本查看它时,它并没有创建新行

<?php

$file = 'myText.txt';

$id = '1'.$file;
//explode($delimiter, $id);

$content = "<PMTags1.0 win>". PHP_EOL;
$content .= . PHP_EOL;

while($row = mysqli_fetch_array($result))
{
  $content .= "<@win:><\<>win>". $row['kategoria'] . PHP_EOL;
  $content .= "<@tekst:><\<>tekst><$>";
  $content .= $row['text'];
  $content .= $gcid.$row['id'].'/'. PHP_EOL;
}

utf8_encode($content);
echo $content;
//Stworzenie pliku
$fp = fopen(trim(trim($id)),"wb");

fwrite($fp,$content);
fwrite($fp, pack("CCC",0xef,0xbb,0xbf));
fopen(trim(trim($id)),"r");
fclose($fp);
//End 4
//5 - Otwarcie pliku



if (file_exists(trim($id))) {
  header('Content-Description: File Transfer');
  header('Content-Type: application/octet-stream');
  header('Content-Disposition: attachment; filename='.basename(trim($id)));
  header('Content-Transfer-Encoding: binary');
  header('Expires: 0');
  header('Cache-Control: must-revalidate');
  header('Pragma: public');
  header('Content-Length: ' . filesize(trim($id)));
  ob_clean();
  flush();
  readfile(trim($id));
  exit;
}
4

5 回答 5

1

对于 Linux 系统,换行符是\n

对于 Mac 系统\r就足够了(感谢 SIT_LCU)。

对于 Windows,您必须在\r旁边添加\n

于 2013-07-30T08:16:37.320 回答
1

简单地说,

\r\n

是你的解决方案。

于 2013-07-30T08:21:35.430 回答
1

不要将 PHP_EOL 用于文本文件的输出,您可以更好地使用:

\n\r

为了更好的兼容性

于 2013-07-30T08:22:35.750 回答
0

\n = CR (Carriage Return) // 在 Unix 中用作换行符
\r = LF (Line Feed) // 在 Mac OS 中用作换行符
\r\n = CR + LF // 用作Windows
NewLine中的换行符

\n 在某些浏览器和工具中可以正确表示,
但要为所有用户获得正确的结果,最好使用“\r\n”作为换行符。

于 2013-07-30T08:45:45.443 回答
0

PHP_EOL是“此平台的正确‘行尾’符号。”

但可能您是在 Unix 上创建文件并在 Windows 下查看它 -EOL符号不同的地方。

于 2013-07-30T08:18:43.530 回答