设为首页收藏本站

数码鹭岛论坛

 找回密码
 注-册

QQ登录

只需一步,快速开始

搜索
查看: 2636|回复: 0
打印 上一主题 下一主题

PHP用heredoc输出大段HTML

[复制链接]
跳转到指定楼层
1#
发表于 2010-11-19 10:21:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天在做东西的时候用到了大文本块,以及需要动态进行解释,想起来用了HereDoc表示。编译器一直报错,反复检查了都没有错误为什么呢?

  1. <?php  
  2. if ( isset($_SESSION['user']) )   
  3. {   
  4. echo <<< eod  
  5. <div class="left">  
  6.     <dl class="style2">   
  7.         <dt class="top0">1</dt>  
  8.         <dt class="top0">2</dt>  
  9.         <dt class="top0">3</dt>  
  10.         <dt class="top0">4</dt>  
  11.         <dt class="top0">5</dt>  
  12.         <dt class="top0">6</dt>  
  13.     </dl>  
  14. </div>  
  15. eod;  
  16. }  
  17. else  
  18. {  
  19. echo <<< eod2  
  20. <div style="text-indent:2em; margin-top:10px">您还没有登录,请登录后再进行表格相关操作。</div>  
  21. eod2;  
  22. }  
  23. ?>
复制代码
后来才发现,原来在 echo <<< eod 这一行后面多了几个空格。

很重要的一点必须指出,结束标识符所在的行不能包含任何其它字符,可能除了一个分号(;)之外。这尤其意味着该标识符不能被缩进,而且在分号之前和之后都不能有任何空格或制表符。同样重要的是要意识到在结束标识符之前的第一个字符必须是你的操作系统中定义的换行符。例如在 Macintosh 系统中是 \r。

如果破坏了这条规则使得结束标识符不“干净”,则它不会被视为结束标识符,PHP 将继续寻找下去。如果在这种情况下找不到合适的结束标识符,将会导致一个在脚本最后一行出现的语法错误。

<<< 可以让我们在PHP代码内实现一大段的HTML代码,并且可以在其中,使用PHP变量。

它叫文档句法,又称定界符。它的语法是"<<<"。用法是在其后提供一个标识符,然后在标识符后提供字符串,再在字符串后提供此标识符来结尾。注意,这里用的标志符是EOD,结束的那个标志要顶头写,不能有缩进和空格.
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
您需要登录后才可以回帖 登录 | 注-册

本版积分规则

小黑屋|手机版|Archiver|数码鹭岛 ( 闽ICP备20006246号 )  

counter

GMT+8, 2025-12-3 18:21 , Processed in 0.072879 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表