php大段文本的处理

    |     2016年5月3日   |   学习偶记   |     评论已关闭   |    5473

对于做程序来说,经常会有大段的html文字需要赋值到变量。php提供了定界符。

<?php
// 当需要写一大段文本,好多行,里面又有单引号,又有双引号,导致转义的时候,都比较麻烦.
// 还可以用heredoc, nowdoc两种界定字符串的方式
$age = 29;
$str = <<<cont
我来写一行,
再来第2行, ‘ ” \,
dsafd abc \t \r\n haha
$age
cont;
echo $str;
/**
heredoc的写法
<<<标识符
中间写大段的文本
标识符;
注意:
1:标识符的名称和变量名的要求一样.
2:heredoc的标识符,一定是独占一行,而且前面没有任何其他字符.
3:heredoc对文本的处理,和 双引号一样,即\r\n\t,变量,等,能解析出来.
**/
// heredoc写大段文本挺方便,但是对内部的字符解析,和双引号一样.
// 如果我不想这样,有没有类似heredoc写大段文本,
// 但是,对文本的解析又像 单引号那样简单.
// 有没有这样的用法呢?
// 答: 有
// 到了5.3.0之后, 又新增了nowdoc方式,能达到如上效果.
echo ‘<hr />’;
$str = <<<‘cont’
我来写一行,
再来第2行, ‘ ” \,
dsafd abc \t \r\n haha
$age
cont;
echo $str;
/***
nowdoc写法和heredoc一样,唯独在标识符两边用单引号包起来,
这样,大段文本的解析,就和单引号一样的效果.
不转义 \n \r \t,变量等等
***/
?>

 

注意:

1.以<<<End开始标记开始,以End结束标记结束,结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号

2.开始标记和开始标记相同,比如常用大写的EOT、EOD、EOF来表示,但是不只限于那几个,只要保证开始标记和结束标记不在正文中出现即可

3.位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在heredoc中,变量不需要用连接符.或,来拼接,如下:

噢!评论已关闭。