[转]php和html混编的三种方式
php和html混编的三种方式
在W3school 上学PHP,看到第一句就是“PHP 文件可包含文本、HTML 标签以及脚本”
在后来的学习别人的代码,发现在需要HTML代码的PHP脚本中,多用这么几种方法
第一种是在HTML中加PHP。大段大段的html代码中,在各个需要执行php的地方。这种方法在ASP的程序中比较常见。
例子:
在后来的学习别人的代码,发现在需要HTML代码的PHP脚本中,多用这么几种方法
第一种是在HTML中加PHP。大段大段的html代码中,在各个需要执行php的地方。这种方法在ASP的程序中比较常见。
例子:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="Content-Language" content="zh-CN"> <title>Hello World</title> <style><span style="color: #000000;"> body{font-size:15px;color:<span style="color: #008000;">#<span style="color: #008000;">000;font-family:Arial,Helvetica,sans-serif;} a{color:<span style="color: #008000;">#<span style="color: #008000;">039;text-decoration:none;} </style> <span style="color: #000000;">php </span><span style="color: #0000ff;">echo</span> "Hello world!这是正文"<span style="color: #000000;">; </span>?> <br> <a href="<span" style="color: #008000;">#<span style="color: #008000;"> >这是一个超链接</span></a>
登录后复制
第二种用echo输出HTML。但是HTML中有双引号,所用echo输出的内容用单引号括起来,避免出错,也省了转义这一步。
比如这样的代码:
不过比较多见的还是加了转义符号的,个人觉得阅读起来不爽
第三种就是用(<<<)标记符了,这是在PHP168的模板代码中首次见到的。
<span style="color: #000000;">php </span><span style="color: #0000ff;">if</span>(!<span style="color: #800080;">$_POST</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">echo</span> '<span style="color: #000000;"><form action="" method="post"> 服务器地址:<input type="text" name="host" value="localhost"><br> 数据库账号:<input type="text" name="user" value=""><br> 数据库密码:<input type="password" name="pwd" value=""><br> 指定数据库:<input type="text" name="db" value="test"><br> <input type="submit" value="确定"> </form> <hr>说明:<b>……<br></b> </span>'<span style="color: #000000;">; } </span>?>
登录后复制
echo "<input type=\"submit\" value=\"确定\"/>"
登录后复制
第三种就是用(<<<)标记符了,这是在PHP168的模板代码中首次见到的。
<<<EOT EOT;
登录后复制
中间的文档直接输出,一个比较好理解的说法是“一个多行的echo ”。
优点是输出大段HTML方便,不需要转义,而且可以引用变量。
优点是输出大段HTML方便,不需要转义,而且可以引用变量。
一个例子:
<?<span style="color: #000000;">php </span><span style="color: #800080;">$label1</span> = "deepblue_mainslide"<span style="color: #000000;">; </span><span style="color: #800080;">$label2</span> = "deepblue_mainh1"<span style="color: #000000;">; </span><span style="color: #800080;">$label3</span> = "deepblue_maint1"<span style="color: #000000;">; </span><span style="color: #800080;">$label4</span> = "deepblue_maint2"<span style="color: #000000;">; </span><span style="color: #800080;">$rs</span> = <span style="color: #0000ff;">array</span>("http://123.abc.com", "abc", "ABC"<span style="color: #000000;">); </span><span style="color: #0000ff;">print</span> <<<<span style="color: #000000;">EOT </span><div <span style="color: #0000ff;">class</span>="slidecont">{<span style="color: #800080;">$label1</span>}</div> <div <span style="color: #0000ff;">class</span>="newcontainter"> <div <span style="color: #0000ff;">class</span>="head">{<span style="color: #800080;">$label2</span>}</div> <div <span style="color: #0000ff;">class</span>="cont" id="Tab1"><span style="color: #000000;"> {</span><span style="color: #800080;">$label3</span><span style="color: #000000;">} </span></div> <div <span style="color: #0000ff;">class</span>="cont" id="Tab2"><span style="color: #000000;"> {</span><span style="color: #800080;">$label4</span><span style="color: #000000;">} </span></div> </div> <a href="<span style="color: #800080;">$rs</span>[0]" title="<span style="color: #800080;">$rs</span>[1]" target="_blank"><span style="color: #800080;">$rs</span>[2]</a><span style="color: #000000;"> EOT; </span>?>
登录后复制
在上面的例子干净利索的输出了大段HTML+变量的值,非常棒。
但是在使用(<<
标识符结束字符串即EOT;要独占一行,前后都不许再有内容。
PS.注意不但EOT;前面不能有空格,而且<<
尤其容易犯的失误就是在标识符前加空格和缩进符,下面的例子什么都不会输出
<?<span style="color: #000000;">php </span><span style="color: #0000ff;">print</span> <<<<span style="color: #000000;">EOT<span style="color: #ff0000;">[1] </span></span><a href="http://blog.i1728.com/" title="东方天宇的博客">东方天宇的博客</a><span style="color: #000000;"><span style="color: #ff0000;"> [2]</span>EOT;<span style="color: #ff0000;">[3] </span></span><span style="color: #0000ff;">echo</span> "喂~人家在等你呢!"<span style="color: #000000;">; </span>?>
登录后复制
我们会发现,[如果三个地方任何一个地方加了空格],会显示以下三种不同的错误提示,最后的echo也没有执行。
<span style="color: #008000;">//</span><span style="color: #008000;">[1]( ! ) Parse error: syntax error, unexpected '<<' (T_SL) in D:\MyHTTP\Apache24\htdocs\testPHPmixHTML04.php on line 2 //[2]( ! ) Parse error: syntax error, unexpected end of file, expecting variable (T_VARIABLE) or heredoc end (T_END_HEREDOC) or ${ (T_DOLLAR_OPEN_CURLY_BRACES) or {$ (T_CURLY_OPEN) in D:\……\testPHPmixHTML04.php on line 14 //[3]( ! ) Parse error: syntax error, unexpected '{' in D:\MyHTTP\Apache24\htdocs\testPHPmixHTML04.php on line 8</span>
登录后复制
这是因为(没有找到标识符结束字符,将echo语句也包含到需要输入的内容了。
同时,因为没有找到标识符结束字符所有的内容都不会输出。当然,这只是我的理解,因为即使将echo语句放在print 前面,脚本也不会有内容内容。
具体什么原因,就留给大家去讨论了。
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
刺客信条阴影:贝壳谜语解决方案
2 周前
By DDD
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前
By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)
