Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Your code doesn't start with a "<?php" tag?


What does that have to do with SGML?


It's the opening of an SGML process instruction tag. That's why PHP code is inherently embedded in SGML documents......

That's why the LedgerSMB project uses Template Toolkit with <?lsmb ?> tags (that and [% %] causes problems in LaTeX).


You seem to think you have some understanding of PHP which you blatantly do not. You've made a nonsense assumption based on the choice of tag used by PHP to tell the interpretor to treat the text following the tag as code and not to direct it back out the SAPI.


Ummm... I think you are missing my point.

<html> <body> <?mypitag ... ?> </body> </html>

That's an SGML document. It doesn't matter where the PI tag is, or what is in it, it's an SGML document.

<?printstuff

'<html> <body> <p>fun stuff here</p> </body> </html>'

?>

That's still an SGML document.

<?php

# logic goes here

?>

That's an SGML document.

This is not splitting hairs. The reason is relatively subtle.... When you are doing SGML stuff an extra newline or a space in front of the opening tag really doesn't have any effect but if you do any output in binary form, it's a mess.


You are making little to no sense. Sorry, but I've got to give up on this thread.


You are looking at it from the interpreter's perspective. I am looking at it from a document semantics perspective and what this means for more complex application environments.

Let me give you an example.

Suppose I have a GUI application that prints some XML fragments to standard output. The most natural way to do this in PHP is to write an XML pre-processor which happens to make decisions based upon operations in the GUI. In other languages you would print to standard output explicitly and the GUI would be primary. In PHP the XML output would be primary and the GUI would be secondary.

In fact your entire GUI is sort of contained in XML fragments to start with.




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: