[转]php中定界符<<<的作用
php中定界符<<<的作用 - [php语
言
]
[Time:2009-08-18]
版权声明
:转载时请以超链接形式标明文章原始出处和作者信息及本声明
转自:http://star210.blogbus.com/logs/44486135.html
因为PHP是一个Web编程语言,在编程过程中难免会遇到用echo来输出大段的html和javascript
脚
本的情况,如果用传统的输出方法
——按字符串输出的话,肯定要有大量的转义符来对字符串中的引号等特殊字符进行转义,以免出现语法错误。如果是一两处还可以容忍,但是要是一个完整的
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的变量,你只需要像在其它字符串中输出一样写就行了,例如
<<<Eofhello{$name}Eof
;
变量$name之所以要用{}括起来是要告诉PHP解析器这是一个PHP变量,其实不用也是可以的,但是有可能会产生歧义,例如你的变量后面刚好不
是一字母或者特殊符号什么的会怎么样呢?千万不能有这样的写法
<<<Eofhello<?php
echo
$name
?>
Eof;
这样的情况,你同样会收到一个语法错误的信息
相关文档:
//去除 script 脚 本
function delScript($string){
$pregfind = array("/<script.*>.*<\/script>/siU",'/on(mousewheel|mouseover|click|load|onload|submit|focus|blur)="[^"]*"/i');
$pregreplace = array('','');
$string = preg_replace($pregfind, $pregreplace, $string);
return $str ......
使用java中的动态代理可以完成很多事情,比如将业务实例进行托管,实现AOP等,但是Php中没有实现这样的东西,昨天突然想到其实可以通过eval来模拟一个动态代理机制。php比java不同的是,php是不需要编译的,因此只要我们能够动态生成一段代码,然后用eval来执行就可以达到效果。代码如下:
/**
* 代理实现类
*/
inter ......
http://hi.baidu.com/fish124423/blog/item/c6f9f310190dd779ca80c456.html解决error trying access httpd. conf file.you will need to manually configure the的配置问题
Apache+mysql+php在windows下的配置(成功)
2008-12-16 14:49
Apche下载地点:http://www.apache/org
Or http://www.51cto.com/html/ ......
看到同学们有不少在用php开发项目的,或许下面的资料对大家有用吧,用来学习一下也好。
收集的资料相关地址:
cubi demo site:http://dev.openbiz.cn/cubi/user/login
openBiz app cubi:http://docs.google.com/View?id=df5ktjv9_64f9fd88gf
openbiz architecture overview:
http: ......