PHP块后缺少新行

PHP块后缺少新行,php,Php,当我处理以下文件src.php时: $php src.php>tgt.txt 我得到的结果是: Str 1 val a = 123Str 3 而不是 Str 1 val a = 123 Str 3 我该如何解决这个问题?我应该在完成所有代码后添加额外的换行符吗?感谢adam的更新: 试一试 无论如何,您似乎需要添加一行新内容:感谢adam更新: 试一试 无论如何,您似乎需要添加一行新代码:为什么不试试: val a = <?=$b."\n";?> Str 3 或者只是: val

当我处理以下文件src.php时:

$php src.php>tgt.txt

我得到的结果是:

Str 1
val a = 123Str 3
而不是

Str 1
val a = 123
Str 3

我该如何解决这个问题?我应该在完成所有代码后添加额外的换行符吗?

感谢adam的更新:

试一试


无论如何,您似乎需要添加一行新内容:

感谢adam更新:

试一试

无论如何,您似乎需要添加一行新代码:

为什么不试试:

val a = <?=$b."\n";?>
Str 3
或者只是:

val a = <?=$b;?><br/>
Str 3
你为什么不试试:

val a = <?=$b."\n";?>
Str 3
或者只是:

val a = <?=$b;?><br/>
Str 3

这是我以前在处理PHP块时遇到的一个问题,据我所知,在?>之后的第一个换行符总是被忽略。这可能是为了避免在使用“仅代码”PHP文件时出现问题,该文件在包含时会输出尾随换行符,例如:

由于许多UNIX编辑器喜欢摆弄您的空白,因此这可能被视为避免此问题的必要措施

TL;博士:

我知道的唯一解决方法是将换行符连接到输出

<?= $b.PHP_EOL ?>
或者在HTML中添加另一个换行符

val a = <?= $b ?>

Str 3
这两种解决方案都很糟糕,但我不知道还有其他办法

编辑:另一种方法是使用heredoc字符串:

echo <<<STUFF
Str 1
val a = $b
Str 3
STUFF;
// must be a break after `STUFF;`

这样,格式设置仍然清晰,并且它的行为与您预期的一样,尽管heredocs有一个警告,即终止内容后必须有换行符;,或者你会得到一个解析错误,至少在5.4上是这样。

这是我以前在处理PHP块时遇到的一个问题,据我所知,在?>之后的第一个换行符总是被忽略。这可能是为了避免在使用“仅代码”PHP文件时出现问题,该文件在包含时会输出尾随换行符,例如:

由于许多UNIX编辑器喜欢摆弄您的空白,因此这可能被视为避免此问题的必要措施

TL;博士:

我知道的唯一解决方法是将换行符连接到输出

<?= $b.PHP_EOL ?>
或者在HTML中添加另一个换行符

val a = <?= $b ?>

Str 3
这两种解决方案都很糟糕,但我不知道还有其他办法

编辑:另一种方法是使用heredoc字符串:

echo <<<STUFF
Str 1
val a = $b
Str 3
STUFF;
// must be a break after `STUFF;`
这样,格式设置仍然清晰,并且它的行为与您预期的一样,尽管heredocs有一个警告,即终止内容后必须有换行符;,或者,至少在5.4版上,您会得到一个解析错误。

考虑改用常量PHP_EOL,因为它提供了一个特定于操作系统的换行符。考虑改用常量PHP_EOL,因为它提供了一个特定于操作系统的换行符更好地添加;在最后一行,以避免类似的问题。最好添加;在生产线的末端,以避免类似的问题。