Re: PHP code only allowed in XHTML 5?

On Wed, Jul 22, 2009 at 7:50 PM, Leif Halvard Silli wrote:
> Thomas Broyer On 09-07-22 15.56:
>> If you're using PHP in an HTML document, you're likely to output HTML
>> markup (elements, attributes; not just attribute values) and therefore
>> have issues with validation before PHP processing (">" from HTML
>> markup within PHP strings being seen as the end of the "bogus
>> comment", "<?php" found within start tags)
>
>
> Again, this depend on the coding style. This is allowed in HTML 4 and in
> XHTML:
>
> <table>
> <tr><td>content
> <?php code to insert more rows ?>
> </table>

Assuming you closed the </td> and </tr>, yes, but only if "code to
insert more rows" doesn't include a ">" (which would end the PI in
HTML 4).
In practice, it is likely that it will (include ">").

> Making PHP pages that are valid before execution is a choice of the author
> or the authoring tool.

If the author has to know that:
 - he must not use ">" (i.e. use \x3E instead) to be valid HTML 4 (and
to comply with how Firefox and Opera will parse the doc [1])
 - he must use paired quotes to comply with how IE will parse the doc [1]
 - he should not output HTML that would change the way the HTML is
parsed and alter its validity (i.e. <?php if ($foo) { echo
"<select\x3E"; } else { echo "<select multiple\x3E"; }
?><option>A<option>B</select>)
 - he must pay attention to the quote characters he uses in his PHP
code when placed within an HTML attribute value (e.g. value="<?php
echo "$foo $bar"; ?>" is invalid HTML)
 - he must not use "--" in his PHP code when placed within an HTML
comment (could be "--" in a string, or the decrement operator)
 - and if he also wants his document to be valid HTML *and* valid
XHTML (or at least well-formed XML), he must not use PHP within start
tags (neither in the tag itself or within attribute values)

If he does know all these things, cannot it just ignore any
warning/error regarding "<?" being invalid HTML5 ?

(I said "author" above, and not "authoring tool", because I can hardly
imagine a tool that would do any/all of this without the author being
involved)

[1] You could tell me that he won't open the page in a browser without
first processing the PHP code; but then what would be the point of
arguing that UAs do support the <? > syntax?

-- 
Thomas Broyer

Received on Thursday, 23 July 2009 08:24:10 UTC