Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP在PHP/纯文本混合模式下使用linefeed_Php_Text - Fatal编程技术网

PHP在PHP/纯文本混合模式下使用linefeed

PHP在PHP/纯文本混合模式下使用linefeed,php,text,Php,Text,这件事困扰了我一段时间。假设我们有一个简单的PHP文件: Line 0 Line 1 <?="Line 2"?> Line 3 ?>之后的行馈送到哪里?在结束标记后放置一些字符(例如?>。)时,换行符不会被吞食 有没有办法控制这种行为?我不愿意将空格放在结束标记之后,因为我的IDE配置为在换行符之前删除空格(我喜欢这种方式)。在标记之外,PHP解释器在HTML模式下运行,HTML模式内的间距问题比文本内容小 要使用PHP生成文本,应使用纯字符串,并以以下方式生成输出: $var =

这件事困扰了我一段时间。假设我们有一个简单的PHP文件:

Line 0
Line 1
<?="Line 2"?>
Line 3
?>
之后的行馈送到哪里?在结束标记后放置一些字符(例如
?>。
)时,换行符不会被吞食

有没有办法控制这种行为?我不愿意将空格放在结束标记之后,因为我的IDE配置为在换行符之前删除空格(我喜欢这种方式)。

标记之外,PHP解释器在HTML模式下运行,HTML模式内的间距问题比文本内容小

要使用PHP生成文本,应使用纯字符串,并以以下方式生成输出:

$var = "Line 2";
$s = "Line 0\nLine 1\n$var\nLine3";
至少这不会给你一个讨厌的惊喜:)

是的,的确:

块的结束标记将包括紧随其后的换行符(如果有)

也就是说,如果
?>
是行中的最后一个内容,那么换行符将作为结束PHP块的一部分被删除。您需要显式地回显一个换行符或添加一个额外的换行符。

这(信不信由你)。如果linefeed直接跟随PHP关闭标记,则PHP将使用该换行符:

块的结束标记将包括紧随其后的 换行符(如果有)

这显然是为了当另一个脚本中的
include
d时,以空行结尾的PHP文件不会导致输出中出现换行。因此,在可预见的未来,这真的是一个“保护无知者”的功能,让他们远离过去的日子


如果你真的想要换行符,还有其他选择:从简单地在结束标记后插入两个换行符(第二个可以!)到从代码中回显一个换行符。

不要使用HTML模式生成文本文件;这是在自找麻烦:)添加一个额外的linefeed当然可以,但我希望PHP能腾出我的第一个linefeed。这种行为对我来说没有意义。为什么会有人想要这个?总有一天会有办法关闭它:-/@Felix一些代码块不会产生输出,你也不一定希望它们到处乱扔新行;说
。是的,PHP所做的并不是一个很好的解决方案。ERB for Ruby和其他工具具有空格控制,例如
-%>
-
控制以下换行符/空格的输出或不输出)。PHP应该加上这个。哈,感谢Ruby的引用,二十年前当我学习它时,我真的认为这是PHP的一部分,但后来我确实遇到了Ruby。
$var = "Line 2";
$s = "Line 0\nLine 1\n$var\nLine3";