Heredoc技术,在大多数的编程实例中,一般只介绍了一种Perl风格的字符串输出技术。
现在很多的php程序中,都巧妙的使用heredoc技术,部分实现界面与代码的准分离,其中phpwind模板就是典型的应用例子。
例如:
<?php $name = '脚本 学堂'; print <<<EOT <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>www.</title> </head> <body> <!--12321--> Hello,$name! </body> </html> EOT; ?>
说明:
1,以<<<End开始标记开始,以End结束标记结束,结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 。开始标记和开始标记相同,比如常用大写的EOT、EOD、EOF来表示,但是不只限于那几个,只要保证开始标记和结束标记不在正文中出现即可。
2,位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在heredoc中,变量不需要用连接符.或,来拼接。
如下:
<?php $v=2; $a= <<<EOF "abc"$v "123" EOF; echo $a; //结果连同双引号一起输出:"abc"2 "123" ?>
3,heredoc常用在输出包含大量HTML语法d文档时。
比如:函数outputhtml()要输出HTML的主页。
可以有两种写法。很明显第二种写法比较简单和易于阅读。
<?php function outputhtml(){ echo "<html>"; echo "<head><title>脚本 学堂 主页</title></head>"; echo "<body>主页内容</body>"; echo "</html>; } function outputhtml() { echo <<<EOT <html> <head><title>脚本 学堂 主页</title></head> <body>主页内容</body> </html> EOT; } outputhtml(); ?>
您可能感兴趣的文章:
php中heredoc的用法详解
PHP echo heredoc语法的用法总结
php heredoc的用法举例
深入PHP EOF(heredoc)用法详解
有关php中heredoc的例子与说明
通过例子,来看下三者的区别,用得最多的是print_r,其中var_dump和var_export比较少用,大家注意观察例子,以理解其中的区别。
例子:
<?php /** * php函数 var_dump var_export print_r区别 * edit www. */ $a = array(1,1,32,322,3433,array(32,232,23232)); $b = 1234; $c = "alsdfl;asdf"; $d = 'a'; $e = fopen("slsl.txt", "r"); var_dump($a); echo "<br>"; var_dump($b); echo "<br>"; var_dump($c); echo "<br>"; var_dump($d); echo "<br>"; var_dump($e); echo "<br>"; echo "<br>"; echo "<br>"; echo "<br>"; var_export($a); echo "<br>"; var_export($b); echo "<br>"; var_export($c); echo "<br>"; var_export($d); echo "<br>"; var_export($e); echo "<br>"; echo "<br>"; echo "<br>"; echo "<br>"; print_r($a); echo "<br>"; print_r($b); echo "<br>"; print_r($c); echo "<br>"; print_r($d); echo "<br>"; print_r($e); echo "<br>"; ?>
输出:
Warning: fopen(slsl.txt) [function.fopen]: failed to open stream: No such file or directory in E:\mywww\yangtest\base1.php on line 6
array(6) { [0]=> int(1) [1]=> int(1) [2]=> int(32) [3]=> int(322) [4]=> int(3433) [5]=> array(3) { [0]=> int(32) [1]=> int(232) [2]=> int(23232) } }
int(1234)
string(11) "alsdfl;asdf"
string(1) "a"
bool(false)
array ( 0 => 1, 1 => 1, 2 => 32, 3 => 322, 4 => 3433, 5 => array ( 0 => 32, 1 => 232, 2 => 23232, ), )
1234
'alsdfl;asdf'
'a'
false
Array ( [0] => 1 [1] => 1 [2] => 32 [3] => 322 [4] => 3433 [5] => Array ( [0] => 32 [1] => 232 [2] => 23232 ) )
1234
alsdfl;asdf
a
注意以上的输出,相信大家可以理解函数var_dump,var_export,print_r的区别了。
注意,最后一个不是贴出来,而是它本来就没有显示什么。
希望对大家有所帮助。
pathinfo() 定义和用法
pathinfo() 函数以数组的形式返回文件路径的信息。
语法
pathinfo(path,options)
参数 描述
path 必需。规定要检查的路径。
process_sections
可选。规定要返回的数组元素。默认是 all。
可能的值:
PATHINFO_BASENAME - 只返回 basename
PATHINFO_EXTENSION - 只返回 extension
说明
pathinfo() 返回一个关联数组包含有 path 的信息。
包括以下的数组元素:
[basename]
[extension]
提示和注释
注释:如果不是要求取得所有单元,则 pathinfo() 函数返回字符串。
来看具体的例子。
例子:
<?php print_r(pathinfo("/www/test.txt")); ?>
输出:
Array
(
[dirname] => /www
[basename] => test.txt
[extension] => txt
)
例2,
<?php print_r(pathinfo("/www/test.txt",PATHINFO_BASENAME)); ?>
输出:
test.txt