Consider only ignoring newlines for final ?> in a file

From: 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/

« previous php.internals (#100428) next »