首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PHP_EOL时输出中没有新行

使用PHP_EOL时输出中没有新行
EN

Stack Overflow用户
提问于 2012-07-17 23:16:41
回答 2查看 15K关注 0票数 8

我将一个字符串组合在一起,输出到一个.srt文件中:

代码语言:javascript
复制
while ($row = mysql_fetch_array($res)) {
    $srt = $srt . $row['line_number'] . PHP_EOL; 
    $srt = $srt . str_replace(".", ",", $row['start']) . " --> " . str_replace(".", ",", $row['end']) .PHP_EOL ;    
    $srt = $srt . br2nl($row['text']) . PHP_EOL; 
    $srt = $srt . PHP_EOL;  
}

但是PHP_EOL似乎不起作用,因为我的输出是:

代码语言:javascript
复制
100:00:02,107 --> 00:00:05,810you sure

也没有新线路。我正在努力使我的产出达到:

代码语言:javascript
复制
1
00:00:02,107 --> 00:00:05,810
you sure

后面跟着一条换行符。

当在我的计算机上通过本地主机进行测试时,它可以工作。我的主机上的PHP版本是否缺少对PHP_EOL的支持?

EN

回答 2

Stack Overflow用户

发布于 2012-07-17 23:32:02

PHP手册说,PHP_EOL常量可以从PHP4.3.10和PHP5.0.2开始使用。

PHP_EOL (string)这个平台正确的“行尾”符号。可从PHP4.3.10和PHP5.0.2- http://php.net/manual/en/reserved.constants.php中获得

因此,测试它是否存在:

代码语言:javascript
复制
var_dump(PHP_EOL); // should output: string(1) " "

代码语言:javascript
复制
var_dump(defined("PHP_EOL")); // should output if exists: bool(true) 

如果没有定义,如果需要,只需手动定义。

代码语言:javascript
复制
define("PHP_EOL", "\n");

或者只需使用echo "\n"echo "\r\n"

另一个可能的原因是,当您在浏览器中输出$srt变量时,您的输出和mime类型都是用HTML设置的,因此您将它看作一行,但是如果您查看源,则应该跨越多行。

为了确保文本输出,如果希望保持html或位于php文件的顶部,可以回显一个<pre>标记,添加这一行以强制文本输出:

代码语言:javascript
复制
header('Content-Type: text/plain', true);
票数 8
EN

Stack Overflow用户

发布于 2012-07-17 23:33:36

PHP_EOL这个平台的正确的‘线的结束’符号。

所以它可以在本地主机上工作,因为它的窗口会中断窗口的行距。

您的在线网站可能在linux上,并使linux中断。

要获得一致的结果,请使用"\r\n"而不是PHP_EOL,尽管我认为媒体播放器可以识别任何类型的换行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11532182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档