首頁 php教程 php手册 Web技术进阶—PHP构建网站

Web技术进阶—PHP构建网站

Jun 21, 2016 am 08:59 AM
cgi html nbsp php web

  当建设一个网站的时候,绝大多数时候不仅需要它能够提供静态网页访问能力,还希望它能和浏览器用户交互、访问后台数据库提供实时更新的信息等等,一句话,要提供动态网页服务能力。这时,你是选择传统方式的CGI呢,还是选择PHP、ASP等服务器端脚本呢? 

  ■从CGI到服务器端脚本 

  创建动态网页的标准方式是CGI,这种方式允许Web服务器运行一个CGI程序来回应浏览器的请求。除了要遵从简单的CGI标准之外,CGI程序的开发与普通程序开发没有什么区别。然而,随着要生成的动态网页的数量和复杂程度的增加,这种方式就遇到了困难。 

  CGI程序包括两个主要部分,一个是程序代码,另一个是要输出的HTML文档内容,可以称作HTML代码。最早的Web开发者既是程序员,又是网页设计者,但是那时的页面都比较简单,开发者最关心的是程序代码的问题,页面代码基本上不需要太多的调整。而随着包括DHTML、javascript在内的技术发展,使得页面可以设计得非常复杂,而由于出现了各种CGI的程序库,程序代码则变得简单多了。这样每进行一次页面代码的调整,CGI程序就需要改动,以至于最后在CGI程序调试中,调试HTML代码的工作量超过了调试程序代码的工作量。这说明在Web开发中,HTML代码的重要性已经十分明显,使得传统的以程序代码为中心的CGI程序不再是最适合的动态网页处理方式了。 

  这样,相当多的程序员对于这种调整HTML代码的工作感到厌倦,尤其随着Internet的商业化,编写CGI程序和进行HTML页面设计已经成为了两种不同的职业。为了解决这个问题,程序员首先使用了模板文件的方法将程序代码和HTML代码分开,CGI程序读取模板文件来获得HTML代码,从而使得在对页面进行较小调整的时候,不需要改动CGI程序。 

  基本上每个程序员在自己的CGI程序中使用自定义的模板,然而,如果有一种通用的HTML模板,使用通用的程序进行预处理,这样不就大大减少了程序设计的工作量吗?最简单的模板可以通过替换模板中预定义的变量来完成解释工作,由于这种程序简单而有效,因此就被集成在Web服务器中,以提供比CGI程序更高的效率,这就是最早的服务器端脚本。 

  这些早期的服务器端脚本,例如出现在ncsa httpd的SSI,只包括变量的概念,但没有控制语句的概念。后来,不同的程序开发者重新开发了支持控制语句,甚至支持子程序的脚本解释处理程序,使得这些程序不仅能为特定的动态网页服务,而且能够进行编程,因而能够完成CGI程序能完成的所有工作,成为了一种新的编程语言。同样是由于性能的缘故,这些程序被合并入Web服务器本身,这就它成为Web开发的一种新形式。 

  ■来自开放资源的PHP 

  当前,服务器端脚本已经是开发动态网页的常用方式,虽然CGI仍然具备灵活的优势,但在一般情况下,使用服务器端脚本更容易和方便。然而,与CGI不同的是,服务器端脚本没有一个统一的标准,不同的服务器端脚本使用各自的语法。当前比较常用的有:Active Server Pages(ASP),ColdFusion,Java Servlets,Personal Home Page(PHP)等。这些技术中,既包括有大公司支持的软件,如ASP,也包括通过Internet进行合作开发的开放源代码软件,如PHP。 

  PHP正是这样一种服务器端脚本语言,它最开始是由Rasums Lerdorf编写的,只是一个简单的用Perl语言编写的CGI程序,用于记录访问他自己的网页的访问者。以后它又被用C语言重新写过,范围扩大到访问数据库。在这期间,有许多人向Rasums Lerdorf要此程序的拷贝,以便自己使用,Rasums Lerdorf为此写了一些介绍此程序的文档,并发布了PHP v1.0。以后,越来越多的人使用PHP,并强烈要求增加一些其他的特性,如循环语句和数组变量等,这时其他的一些程序员也开始参与PHP源码的编写,对PHP进行了重新编写,PHP v3.0就出现了。当前,使用PHP的网站已经超过80万,并且还在不断地增加。 

  除了向浏览器发送动态网页之外,PHP还能发送不同HTTP头标识,使其能提供网页重定位、与Web服务器的安全认证结合的能力、以及设置Cookie。PHP能提供与多种数据库直接互联的能力,包括MySQL、Sybase、Informix、Oracle、MsSQL等,也能支持ODBC。并通过额外的库能够支持会话管理和XML处理(这些库都是基本的库,因此也是PHP用户的基本配置)。从这里我们可以看出,PHP已经不再是简单的服务器端脚本了,按照《PHP3浏览器应用编程》的作者David Medinets的话,PHP是一种应用服务器。因为它不仅仅包括一个完整的编程语言,而且还包括完整的访问数据库的能力、支持Internet协议(如电子邮件和HTTP)的能力,这一整套技术使得PHP能与ASP、ColdFusion、WebSphere互较短长。 

  要运行PHP,通常使用Linux或FreeBSD作为操作系统,使用Apache作为Web服务器。当然使用其他操作系统也同样可行,这是因为PHP是一种跨平台的软件,这当然得益于它是开放源代码的软件。但是,如果不使用Apache服务器,那么PHP就只能以CGI的方式运行,这样就不能利用将PHP编译进Apache带来的性能优势。当从www.php3.net中下载了最新版本的PHP并安装配置完毕之后,就可以使用编辑器或网页制作软件来编写PHP代码了。如果你能使用C或Perl进行编程,就会发现PHP编程并不复杂,作为程序语言的PHP比C简单,比Perl易懂。下面是一个最简单的嵌入PHP程序的页面。

  〈HTML〉 
  〈HEAD〉〈TITLE〉Test〈/TITLE〉〈/HEAD〉 

  〈BODY〉 

  〈?PHP $string = ’world!’; ?〉 

  〈H1〉Hello,〈?php echo $string ?〉〈/H1〉 

  〈/BODY〉 

  〈/HTML〉   

  在HTML网页中嵌入的PHP代码,需要以标记结束。上面这个页面将显示Hello,world!的结果。这里可以看出,PHP程序语法与C或Perl非常类似。事实上,PHP来源于C和Perl,支持C和Perl大部分语法和操作符,因此使用PHP对C和Perl程序员都是非常简单的事情。 


  ■选择PHP 

  虽然PHP已经十分流行,但在国内了解它的人却很少,这当然是因为它不是商业软件,缺乏市场运作。即使在听说过PHP的人们中,不少人也抱有这样的看法,PHP既没有商业公司的支持,又缺乏商业的图形化开发工具,PHP能够和ASP等商业软件一样有前途吗?的确,ASP由于有微软公司的支持,使得它迅速变得十分流行,现在书店中充斥着ASP的相关书籍,而很少能找到介绍PHP的著作,正说明了国内的这种流行趋势。然而,过去一年中整个互联网中PHP使用者稳步增长的事实,却与这些观点截然相反。我认为那些不看重PHP的人至少忽略了以下几个原因: 

  1. PHP已经证明是非常实用的软件,性能、可靠性、稳定性非常高,借一个来自武侠小说的比喻,PHP就如同来自江湖下层一步步成名的草莽英雄,而商业软件则如同出身高贵的少年侠士,其成名的原因与其师傅和门派密切相关。PHP具备各种数据类型并支持复杂的文本处理,它甚至支持面向对象,能配置为处理XML等等;更为重要的是PHP的这些功能都是非常实用的,要知道PHP的开发者都是根据自己的需要自愿进行的开发,它具备的功能一定是有着实际用途的。虽不能说PHP比同类产品强,但其实力不容忽视。 

  2. PHP是跨平台的产品,它能运行在多种Unix以及Windows NT上,并能访问多种不同的数据库,对很多人来讲,这一点非常重要。商业产品通常要求非常苛刻,只能和特定的操作系统和数据库相互协作。而人们喜欢使用自己已经熟悉的操作系统、Web服务器和数据库,如Linux、Apache和MySQL。 

  3. PHP是开放源代码的软件,很多人对此不以为然,然而他们忽视了占Web服务器市场58%的Apache服务器,忽视了Linux、FreeBSD等开放源代码的操作系统,这些开放源代码的软件结合在一起,就形成了一个非常有效的解决方案。 

  4. 即便不考虑源代码的因素,PHP不需要任何费用的特点也是商业软件无法相比的。虽然ASP也是免费的,然而很多人忽视了运行Windows NT及MS SQL的费用,而PHP和Linux/FreeBSD、Apache、MySQL相互合作,几乎不需要任何软件费用,当前如果不考虑盗版,究竟有多少人还会坚持ASP呢? 

  5. PHP有良好的技术支持,可以通过电子邮件、论坛、网页、IRC等方式获得技术支持。这听起来有些好笑,难道这比商业软件的技术支持更有效吗?事实上依我个人使用商业软件和开放源代码软件的经验,这种技术支持形式相当不错,设想一下,你能够得到来自ASP开发组的技术服务吗?我想更常见的结果是在一通800电话之后,得到的只是一堆无用的建议,最后你终于厌倦了转来转去的电话。即便是现场服务,也许是某个工程师在一遍又一遍地重装系统,直到系统偶然地运行正常为止,这样也好,系统管理员至少可以装作什么都不懂的样子稍事休息一下。而开放源代码使你能提出更接近故障本质的现象,不但遇到过同样现象的使用者会提供帮助,PHP的开发者也能提供帮助。有什么技术支持比几十万个使用者,其中大多数都是使用PHP的老手,提供的帮助更有效呢。 

  无论如何,商业支持并不是一个软件流行的必要条件,反过来倒是正确的,最近的例子Linux不就是由于流行而得到了商业支持的吗?例如最新版本的网页制作工具DreamWaver 3.0,也开始支持PHP的标记,允许在其中直接进行PHP代码的编写了。越来越多的国内Web开发者也开始将目光投向PHP,其中大多数选择了Unix (Linux,FreeBSD, Solaris, AIX, HP-UX等等)作为Web站点的操作系统,而国内出版计算机图书的出版社也会陆续出版一些PHP的著作,显然这又会有利于PHP的推广和发展。



本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1665
14
CakePHP 教程
1424
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
PHP和Python:比較兩種流行的編程語言 PHP和Python:比較兩種流行的編程語言 Apr 14, 2025 am 12:13 AM

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

PHP行動:現實世界中的示例和應用程序 PHP行動:現實世界中的示例和應用程序 Apr 14, 2025 am 12:19 AM

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。

PHP:網絡開發的關鍵語言 PHP:網絡開發的關鍵語言 Apr 13, 2025 am 12:08 AM

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

PHP的持久相關性:它還活著嗎? PHP的持久相關性:它還活著嗎? Apr 14, 2025 am 12:12 AM

PHP仍然具有活力,其在現代編程領域中依然佔據重要地位。 1)PHP的簡單易學和強大社區支持使其在Web開發中廣泛應用;2)其靈活性和穩定性使其在處理Web表單、數據庫操作和文件處理等方面表現出色;3)PHP不斷進化和優化,適用於初學者和經驗豐富的開發者。

PHP和Python:代碼示例和比較 PHP和Python:代碼示例和比較 Apr 15, 2025 am 12:07 AM

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。

PHP與其他語言:比較 PHP與其他語言:比較 Apr 13, 2025 am 12:19 AM

PHP適合web開發,特別是在快速開發和處理動態內容方面表現出色,但不擅長數據科學和企業級應用。與Python相比,PHP在web開發中更具優勢,但在數據科學領域不如Python;與Java相比,PHP在企業級應用中表現較差,但在web開發中更靈活;與JavaScript相比,PHP在後端開發中更簡潔,但在前端開發中不如JavaScript。

PHP和Python:解釋了不同的範例 PHP和Python:解釋了不同的範例 Apr 18, 2025 am 12:26 AM

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP:處理數據庫和服務器端邏輯 PHP:處理數據庫和服務器端邏輯 Apr 15, 2025 am 12:15 AM

PHP在數據庫操作和服務器端邏輯處理中使用MySQLi和PDO擴展進行數據庫交互,並通過會話管理等功能處理服務器端邏輯。 1)使用MySQLi或PDO連接數據庫,執行SQL查詢。 2)通過會話管理等功能處理HTTP請求和用戶狀態。 3)使用事務確保數據庫操作的原子性。 4)防止SQL注入,使用異常處理和關閉連接來調試。 5)通過索引和緩存優化性能,編寫可讀性高的代碼並進行錯誤處理。

See all articles