Php没有开始/结束标签?

vis*_*ise 8 php

是否有可能让php不要求<?php ?>某些文件的开始/结束标记()?默认情况下,代码应解释为php.

我知道我可以省略结束标记(?>).

cod*_*gar 13

不.解释器需要标签来知道要解析什么以及不解析什么.

  • 要添加此答案,PHP标记之外的任何内容都只是作为文本发送到浏览器.PHP最初是作为一种模板语言,PHP标签穿插在HTML中,而不是相反. (2认同)

Tör*_*bor 11

如果您想从命令行调用PHP脚本,可以使用-r开关保留脚本标记.摘录自man php:

   -r code        Run PHP code without using script tags ’<?..?>’
Run Code Online (Sandbox Code Playgroud)

现在,您可以通过以下方式调用脚本:

php -r "$(cat foo.php)"
Run Code Online (Sandbox Code Playgroud)


Thi*_*ker 5

不使用结束标记最好.开始标记是必要的.

正如MaoTseTongue所提到的,在Zend文档中写道:

对于仅包含PHP代码的文件,绝不允许使用结束标记("?>").PHP不需要它,省略它可以防止意外地将尾随空白空间注入响应中.

  • 使用结束标记是好的(对于那些喜欢标记中的平衡的人来说,这是美观的).关键点是在关闭php标记之后不包括任何尾随空格(例如回车,换行,制表符,空格等),因为Web服务器实际上会将这些字符发送到浏览器.即便如此,对于大多数服务于html,xml,json的Web应用程序来说,它通常都是无害的.但是,当动态构建二进制数据(如图像)时,它可能会导致问题.另一次让你遇到麻烦的是当你的php代码意外地已经发送空白时设置http标头. (8认同)