搜索
首页后端开发php教程PHP学习宝典-第四章

PHP学习宝典-第四章

Dec 23, 2016 am 09:41 AM
php学习

将PHP嵌入HTML

本章重点

◆ 转入PHP模式

◆ 选择PHP的卷标样式

◆ 使用PHP编写第一个程序「Hello World」

◆ 档案含括的档案请求

经过前面几章的初步介绍,相信你现在就可以一始编写PHP的script了。在本章中我们将进一步了解PHP模式,PHP卷标以及其它相关档案的含括(include)和请求(require)。读者将从这里编写第一个简单的PHP程序。

HTMK与PHP完成兼容

PHP可以和HTML完全地混合运用,实际上PHP通常是必须嵌入在HTML内使用的。你稍后会看到,PHP能够使用HTML标准中一些灵活的语法,例如窗体(form),来处理许多相当好用的性质。

在客户端与HTML兼容的所有一切同样子也和PHP兼容。PHP不会理会其它的JavaScript 程序代码、对音乐和动书的呼叫、apples或客户端上的其它一切。PHP都会忽略它们,这部份会由Web服务器把它们传递到客户端。

其实读者你可以使用任何方法开发Web网页,然后再把PHP程序代码加上去。如果你已习惯是用小组团队的方式工作,并使用大型多媒体绘图套件来开发每个页面,如果你愿意,同样也可以继续延用这种方式。从实用的观点来看,你无须改变工具或工作流程,就按照以往一直使用的方式继续下去,在最后再添加伺服端功能即可。

跳出HTML模式

我们要怎样在HTML中标示出PHP的区段呢?其实透过在每个PHP区段的启始和结尾时使用特殊的PHP标签,就能够做到这一点要求。这个过程就称为「跳出HTML(escaping from HTML)」或是所谓的「跳进PHP(escaping into PHP)」。

我们不是为了要使你混淆,这里的跳(escpae)与一般PHP所使用的eacape不同,那些是在字符串内特殊字符(例如tab或是换行字符)之前使用反斜线的用法。

在这两个PHP标签之间的所有内容都会藉由PHP解析器识别理解为PHP程序代码。这两个标签之外的所有内容就与服务器无关了,就会直接传给客户端,由客户端弄清楚它是HTML、JavaScript或是其它什么内容。

PHP标签有四种类型,在使用它们时分别有不同的原。不过其中一些是因为个人的喜好问题、或者是因为程序设计师用什么会感到比较舒服的问题,或上一个团队自己决定要使用的设定。

标准的PHP标签

最常使用的PHP标签如下:

 
如果使用这种格式,就可发十分肯定所用的标签能够被正确地直译。除百非有很好的理由才去选取用其它的写法格式,否则最好就这种标准写法。其它任何PHP tag写法可能在未来都会被取消,这是唯一被认为安全的写法。

简短起始(SGML格式)标签

简短起始标签如下所示:

 

这是最简单的表示方式。由于这种方式的输入次数较少,会吸引那些在每个script中频繁切换进出HTML的使用者,然而使用这种短标签也是要付出代价的,必须做到下面的三种方式之一来让PHP识别该标签:

1. 在建构PHP时,要记得选择「--enable-short-tags」的设置选项。

2. 在php.ini档案中启用short_open_tag设置。但是在使用这个选项时,必须禁止XML和PHP一并使用,这是因为XML的tag也是使用这种语法。

还有一种可以用来使用简短语法的方式:使用short_open()函式,但是这种用法在PHP 4以后已不再提供使用。

有许多是不要使用简短卷标语法的原因,最主要的原因就是此种语法与XML不兼容,又因为XHTML也是一种XML?,所以将使得你的PHP程序将无法使用在XHTML档案内。使用简短卷标的PHP程序是比较不空易视觉上的辨识出来,许多程序代码颜色强调的工具并不会支持这种语法,入门的设计者应该在所有可能的地方使用标准的卷标语法。

简短村签过去是许多设计高手习惯以为常用来使用PHP的方式,如今PHP开发团队努力平衡于得供众多使用者安装方式的标准与一致性语法,虽然过去已经有大量的程序代码使用旧式语法,但因为XML已经变成Web开发越来越中心的技术,简短标签将会在未来淡化,所以你必须给自己一个方便马上使用标准的语法。

如果你已经养好习惯要避免使用简短标签格式,记得在你的php.ini档案中取消它,你会在你忘记使用标准格式的地方响应一个错误讯息。

ASP格式的标签

ASP格式的卷标是Microsoft Active Server Pages用来隐藏程序段落和卷标,ASP格式的卷标如下所示:

 

使用FrontPage做为开发工具的使用者最常选择这种格式。如果要使用这种ASP格式的标签,必须在php.ini档案中设定配置该选项。很显然地,如果你使用ASP写法格式的标签和以「.asp 」为扩展名(之前便工作于ASP网站的人可能希望如此),则需要在IIS服务器上先把ASP功能关掉,否则两种程序引擎都会尝试解析相同程序段落而产生不可预期的结果。

HTML的script标签

这种标签的写法如下所示:

 
虽然这样很有效率,并且也以能够回避FrontPage的问题,但在某些情况下还是会很麻烦,例如在迅速蹦现(php-in)变数的替换上就会遇到麻烦。尤其是,如果在网站上使用了很多JavaScript,一定要更加小心,因为结束script的标签很容易造成两种意义的混淆。HTML的script标签最适合用于PHP程序代码区别很大的时候。

第一支程序「Hello World」

现在我们准备编写第一个PHP程序。先在自己喜欢使用的编辑器中打开一个新档案,键入以下内容:

141.jpg

在大多数浏览器中,除了PHP这部分,其它内容都不是很需要的。然而还是应该养成使用标准HTML结构一嵌入PHP的好习惯。

如果看不到非常类似图4-1所示的输出,那就是有问题了,很可能是某种安装或设定上出也问题。

142.jpg

回顾第三章的内容即可以了解安癍上的说明,向后翻阅到第三十七章可以找到相关的设定与配置选项。另外在第十五章中分析了一些常见的问题并不提供错误问题相关信息。

进出PHP模式

在PHP的script内任一时刻,你可能是处于PHP模式之中,划是处于PHP模式之外的HTML内。这里没有其它中间的状态,PHP标签内的所有内容就是PHP程序代码,标签外的所有内容都有是普通HTML内容。

可以依自己高兴使用PHP卷标随时转入PHP模式,例如:

143.jpg

请注意在第一个PHP模式实例下发生的情况,这里有个数指定了值,到了第二段PHP程序代码该指定仍属有效。在下一章中你会学到更多进出PHP模式时变量的相关使用情况。在第十四章还会学到使用PHP模式的不同型式风格。

档案含括(include)

把PHP加到HTML中的另一种方法是把PHP程序代码放入单独的档案,然后使用PHP的include 函式呼叫它。共有四种相关的含括函式:

144.jpg

先在前版本的PHP内,include与require函式和功能与速度有显着的差异,这将不再成立,这两类函式只有在错误所时丢出错误讯息的类型不同, include()函式与include_once()函式只会在错误时发出警告,但是require()函式与require_once()函式会发出严重错误而中断程序。

如同函式的命名所提及的,include_once()和require_once()与名称只有include()和require()不同的地方在于它们只会允许每个PHP程序中只含括一次该档案,这在你含括内含PHP函式的档案时是极度有用的。因为重新定义函式将会自动导致严重错误。在大型PHP系统内,常常需要含括一些本身也有含括其它档案的档案,但是要追踪你之前是否已经含括过某特定档案是困难的,但是一但使用include_once()或是 require_once()则不需要如此。

你要如何决定是否使用include()函式呢?基本是你必须决定是否坚持自己撰写好的程序来避免严重错误的痛苦,或是在你的程序中即使出现常见错误仍无访,最严重的方式就是使用require(),它会在你的程序不完善时马是中断程序,最不严谨的就是include_once(),它会自然隐藏你的一些坏的程序习惯。

最常见的PHP include功能就是在网站的所有网页加入首页与页尾。

例如现在有一个简单的页首档案(称为header.inc)如下所示:

145.jpg

显然的,这样单一改变简化了整个网站的维护与规模,现在如果你要使用不同的视觉呈现或是如果你要更新版权说明的话,你只要更改一个档案而不需要更改好几个HTML网页的相同程序片断。

当你要含括档案时,记得在你php.ini档案内的inculde_path指令设定正确,只要藉由使用正确的指令你可以含括来自网站上层次或你的Web结构之外网站的档案,请参阅第37章更详细说明。

如同你可以在上述程序所见一样,PHP的include()函式只会所含括的档案以文字的方式传送,许多人以为由于include()函式是在PHP模式内使用的,所以含括进的部分也会属于PHP模式,这并不是真的,事实上服务器会在含括档案一开始跳回HTML模式,并在含括档案结束后悄悄返回PHP模式,并马上与分号结合。

你永远都要在想要使用PHP程序时使用PHP的起始与结束标签,任何被含括的档案若想要以PHP执行的话都必须加入合法的标签,如果整个档案都属于PHP部分(常见于使用函式的档案),整个档案都必须以PHP标签包住。

现在我们来看底下档案,database.inc:

146.jpg

我们无法充分在此弹调:如果你在含括PHP档案发生问题时,尤其是如果你所看见的结果并非预期或是看不见应该看到的部分时,请绝对小心在你有含括档案内前后都有加上PHP标签。

如果你愚蠢的只将上述片段的档案含括进PHP程序的话,你会看到此数据库变量会变成文字显示在页面上,因为你忽略了使用PHP标签,解析器以为这个段落是HTML,正确database.inc的写法应该如下所示:

147.jpg

对于所有含括其它档案,你必须确保在最后一行没有使用换行,记住任何PHP之外的部分都被看成HTML部分,甚至一个空白行也是如此,PHP标签之外的空白行或是空格符将会被输出,如果你在不能使用输出的时候含括了这个档案,例如在使用HTTP header之前,你的程序会出现一个大大关于输出串流已经在含括档案内使用的错误讯息,请参阅第15章更详细的部分。

摘要

PHP很容易嵌入到HTML中,你可以使用任何一种自己习惯使用的HTML产生方法,然后再添加PHP程序代码区段到其中。加上的PHP程序代码区段可以是只有一点点的注解单一数字,也可以是很长很长的程序代码区段。

每个PHP区块,无论长短都要有PHP标签。虽然本章介绍了几种写法格式的PHP标签,但初学者应该还是要使用标准规范的那一种标签写法。你还可以使用 include()或require()函式,在档案中将PHP档案含括入内,但被含括档案的内容只有围在PHP标签内时才会被识别为PHP程序代码,这一点要特别留意。

 以上就是PHP学习宝典-第四章的内容,更多相关内容请关注PHP中文网(www.php.cn)!


声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
超越炒作:评估当今PHP的角色超越炒作:评估当今PHP的角色Apr 12, 2025 am 12:17 AM

PHP在现代编程中仍然是一个强大且广泛使用的工具,尤其在web开发领域。1)PHP易用且与数据库集成无缝,是许多开发者的首选。2)它支持动态内容生成和面向对象编程,适合快速创建和维护网站。3)PHP的性能可以通过缓存和优化数据库查询来提升,其广泛的社区和丰富生态系统使其在当今技术栈中仍具重要地位。

PHP中的弱参考是什么?什么时候有用?PHP中的弱参考是什么?什么时候有用?Apr 12, 2025 am 12:13 AM

在PHP中,弱引用是通过WeakReference类实现的,不会阻止垃圾回收器回收对象。弱引用适用于缓存系统和事件监听器等场景,需注意其不能保证对象存活,且垃圾回收可能延迟。

解释PHP中的__ Invoke Magic方法。解释PHP中的__ Invoke Magic方法。Apr 12, 2025 am 12:07 AM

\_\_invoke方法允许对象像函数一样被调用。1.定义\_\_invoke方法使对象可被调用。2.使用$obj(...)语法时,PHP会执行\_\_invoke方法。3.适用于日志记录和计算器等场景,提高代码灵活性和可读性。

解释PHP 8.1中的纤维以进行并发。解释PHP 8.1中的纤维以进行并发。Apr 12, 2025 am 12:05 AM

Fibers在PHP8.1中引入,提升了并发处理能力。1)Fibers是一种轻量级的并发模型,类似于协程。2)它们允许开发者手动控制任务的执行流,适合处理I/O密集型任务。3)使用Fibers可以编写更高效、响应性更强的代码。

PHP社区:资源,支持和发展PHP社区:资源,支持和发展Apr 12, 2025 am 12:04 AM

PHP社区提供了丰富的资源和支持,帮助开发者成长。1)资源包括官方文档、教程、博客和开源项目如Laravel和Symfony。2)支持可以通过StackOverflow、Reddit和Slack频道获得。3)开发动态可以通过关注RFC了解。4)融入社区可以通过积极参与、贡献代码和学习分享来实现。

PHP与Python:了解差异PHP与Python:了解差异Apr 11, 2025 am 12:15 AM

PHP和Python各有优势,选择应基于项目需求。1.PHP适合web开发,语法简单,执行效率高。2.Python适用于数据科学和机器学习,语法简洁,库丰富。

php:死亡还是简单地适应?php:死亡还是简单地适应?Apr 11, 2025 am 12:13 AM

PHP不是在消亡,而是在不断适应和进化。1)PHP从1994年起经历多次版本迭代,适应新技术趋势。2)目前广泛应用于电子商务、内容管理系统等领域。3)PHP8引入JIT编译器等功能,提升性能和现代化。4)使用OPcache和遵循PSR-12标准可优化性能和代码质量。

PHP的未来:改编和创新PHP的未来:改编和创新Apr 11, 2025 am 12:01 AM

PHP的未来将通过适应新技术趋势和引入创新特性来实现:1)适应云计算、容器化和微服务架构,支持Docker和Kubernetes;2)引入JIT编译器和枚举类型,提升性能和数据处理效率;3)持续优化性能和推广最佳实践。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版