Consider only ignoring newlines for final ?> in a file
| From: | Andrea Faulds | Date: | Thu, 07 Sep 2017 01:45:05 +0000 |
| Subject: | Consider only ignoring newlines for final ?> in a file | ||
| Groups: | php.internals | ||
| Request: | Send a blank email to internals+get-100428@lists.php.net to get a copy of this message | ||
Hi everyone,
This is the tiniest of issues, but it's bugged me for a long time and makes the HTML produced by PHP code less readable than it out to be. Specifically, PHP ignores a newline immediately following a ?> tag. The reason for this is, from what I recall, to prevent issues where whitespace at the end of a PHP file is echoed before headers can be sent. On UNIX in particular, all text files (should) end in a newline, so this is a reasonable and necessary feature.
However, for ?> tags anywhere that aren't right at the end of the file, this is just a nuisance that makes for messy output. For example, HTML output that should look like:
<table>
<tr>
<td>foo</td>
<td>bar</td>
</tr>
</table>
May instead end up looking something like:
<table> <tr>
<td>foo</td> <td>bar</td>
</tr></table>
Of course, HTML doesn't matter so much, it'll render the same to the end-user. However, for outputting e.g. plain text, newlines can be significant, and so you have to insert an ugly and surprising extra newline following a tag.
Would anyone object to me changing how PHP handles this so that only the final ?> tag consumes its following newline, and only at the end of the file?
Thanks!
--
Andrea Faulds
https://ajf.me/