在web编程过程中难免会遇到用echo来输出大段的html和javascript脚本的情况,如果用传统的输出方法——按字符串输出的话,使用PHP肯定要有大量的转义符来对字符串中的引号''/""等特殊字符进行转义,以免出现语法错误。如果是一两处还可以容忍,但是要是一个完整的html文本或者是一个200行的js我想是谁都会崩溃的。这就是PHP为什么要引入一个定界符的原因——至少一大部分原因是这样的。
1.PHP定界符的作用就是按照原样,包括换行格式什么的,输出在其内部的东西;
2.在PHP定界符中的任何特殊字符都不需要转义;
3.PHP定界符中的PHP变量会被正常的用其值来替换。
PHP中的定界符格式是这样的:

<<<Eof
……
Eof;

看起来很简单,但是其中有许多地方需要注意。
首先在<<<之后的字符Eof是自己定义的,随便什么都是可以的(比如AAA都可以),但是结尾处的字符一定要和他一样,他们是成对出现的,就像{}这样的——这是最基本的。
在PHP定界符使用的过程中,第二个需要注意的问题——也是最经常出现问题的地方:
结尾的一行(如上例的Eof;),一定要另起一行,并且改行除了Eof;这个定界符结尾标识之外不能有任何其他字符,前后都不能有,包括空格。如果在本行最前或者最后出现空格,制表符的话,你会收到一个这样的错误信息:
Parse error: parse error, unexpected $end in……,提示你语法错误;
第三个需要注意的是,如果在定界符中间出现有PHP的变量,你只需要像在其它字符串中输出一样写就行了,例如 :

<<<Eof
hello{$name}
Eof;

变量$name之所以要用{}括起来是要告诉PHP解析器这是一个PHP变量,其实不用也是可以的,但是有可能会产生歧义,例如你的变量后面刚好不是一字母或者特殊符号什么的会怎么样呢?千万不能有这样的写法

<<<Eof
hello<?php echo $name?>
Eof;

这样的情况,你同样会收到一个语法错误的信息。先便是一个战地测试过的PHP定界符的正确写法。里面包含了,html和javascript的代码:

<?php
$name = 'kitty';
echo <<<Eof
<table height="20">
<tr><td>
{$name}<br/>
<script>
var p='hello world';
document.writeln(p);
</script>
</td></tr>
</table>
Eof;
?>

最后再看一个加入样式的写法:

<?php
echo <<< Eof
<table width=80% border="2" cellpadding="3" cellspacing="0" bordercolor="#808080">
<tr bgcolor="#84A9E1">
<td align="center">ClassID</td>
<td align="center">stuno</td>
<td align="center">学生姓名</td>
<td align="center">家长姓名</td>
<td align="center">家长手机号</td>
</tr>
Eof;
?>

最新文章

  1. iOS-钥匙串中证书全部失效(证书的签发者无效)的解决办法
  2. C#基础--基于POP3协议的邮件接收和基于STMP的邮件发送
  3. PHP 5.4 on CentOS/RHEL 6.4 and 5.9 via Yum
  4. 《构建之法》之第8、9、10章读后感 ,以及sprint总结
  5. POJ1651Multiplication Puzzle(矩阵链乘变形)
  6. Notepad++编辑Pyhton文件的自动缩进的问题(图文)
  7. nyoj 95 众数问题
  8. zf2 安装
  9. 在vs环境中跑动sift特征提取(代码部分)
  10. Cocos2d-x在win32,android和IOS下的文件读写问题
  11. VC++函数(win32_exe)
  12. c:foreach如何嵌套循环,求指教,求优化
  13. python之FTP程序(支持多用户在线)
  14. 纪中集训 Day 3
  15. [HNOI2006]公路修建问题
  16. 利用ApplicationContextAware装配Bean
  17. 如何配置nginx屏蔽恶意域名解析指向《包含隐藏nginx版本号》
  18. Codeforces 792 E. Colored Balls
  19. (33)关于django中路由自带的admin + 建表关系的讲解
  20. js-ES6学习笔记-module(3)

热门文章

  1. 用select实现多客户端连接
  2. pyppeteer模块的基本使用
  3. MSF——信息收集(四)
  4. VMware中Centos7的静态ip设置
  5. python基础--二分查找
  6. 超強的Linux指令解釋網站《explainshell.com》,學Linux必備!
  7. java并发编程之美-阅读记录5
  8. SpringMVC学习(12):基于Hibernate+Spring+Spring MVC+Bootstrap的管理系统实现
  9. go语言从例子开始之Example14.变参函数
  10. Bootstrap 网页实例