HTML实体的妙用
twocode

    PHP字符串的定义方式有三种:常用的''和""这两种,但是在定较长字符串或者比较复杂的字符串时候,需要使用定界符定义。

    偶尔在使用定界符定义字符串时,出现了异常:

    echo $str = <<<STR

    当A>B,

    C<D时,

    太阳就会重新升起

STR;


    实际的输出结果是:当A>B, C

    分析:

    ‘<’和后面的内容没有了,然后查看网页源代码,如图:

1425375029109778.png

可以看出来没有输出的代码其实浏览器也标红了,说明这是一种错误。那我们在从heredoc用法说起吧:

    1. 以上面代码为例,以<<<开头,STR为自定义名称,并以同样的名称结尾,注意STR结尾时,要独占一行,顶头书写,不能有空格。

    2. 在定界符内,单双引号正常使用,变量能够正常解析,但是函数是不可以正常使用的。

    3. heredoc中的html代码正常解析,例如:

      <<<HTM    

        测试代码!

HTM;

    运行在页面中显示:测试代码。标签是不显示的,说明正常解析了。

    所以呢,刚开始的异常就有答案了,'<'被浏览器识别为html标签的开始,而向后查询时没有结束的一半了,所以会一直到页面的最后,于是显示异常。

    解决这种的方法,相信你也想到了,就是把‘<’用实体符号'&lt;'代替,就会正常显示字符串了。

网友评论已关闭