第1章 PHP入门

本章首先介绍PHP概况,然后介绍PHP程序的工作流程,并以WampServer为例介绍PHP服务器安装和配置。通过本章的学习,读者可以了解PHP程序的工作流程,并可以编写、运行简单的PHP程序。

1.1 PHP概况

PHP是PHP:Hypertext Preprocessor单词组合的首字母缩写,是一种被广泛应用的、免费开源的、服务器端的、跨平台的、HTML内嵌式的多用途脚本语言,PHP通常嵌入到 HTML中,尤其适合 WEB 开发。PHP与微软公司的ASP(或.NET)以及SUN公司的JSP颇有几分相似,是一种在服务器端执行的HTML内嵌式的脚本语言。

1.1.1 PHP的优势

PHP发展到今天,具备了很多优势,简单介绍如下。

(1)易学好用:学习PHP的过程非常简单。PHP的主要目标是让WEB开发人员只需很少的编程知识就可以快速地建立一个真正动态交互的WEB系统。PHP语言的风格类似于C语言,非常容易学习,只要了解一点儿PHP的基本语法和语言特色,就可以开始PHP编程之旅。
(2)免费开源:基于PHP的WEB系统源代码是免费开源的。
(3)良好的可扩展性:PHP的免费开源导致可扩展性大大增强,任何程序员为PHP扩展附加功能都非常容易。
(4)平台无关性(跨平台):同一个PHP应用程序,无需修改任何源代码,就可以运行在Windows、Linux、UNIX等绝大多数操作系统环境中。
(5)功能全面:PHP几乎涵盖了WEB系统所需的一切功能,例如使用PHP可以进行图形处理、编码与解码、压缩文件处理、XML解析、支持HTTP的身份认证、Session和Cookie等操作。
(6)数据库支持:PHP最强大最显著的优势是支持Oracle、MS-Access、MySQL、Microsoft SQL Server在内的大部分数据库,并且使用PHP 编写数据库支持的动态网页非常简单。
(7)面向对象编程:PHP较新版本提供了面向对象的编程方式,不仅提高了代码的重用率,而且为代码维护带来很大的方便。

1.1.2 PHP的应用领域

PHP 主要用于以下3个应用领域。

(1)服务器端脚本程序:可以使用PHP编写服务器端的脚本程序,完成任何其他的脚本语言(例如ASP、JSP或.NET)完成的工作,例如收集表单数据,生成动态网页,或者发送/接收Cookie等工作。
(2)命令行脚本程序:可以使用PHP编写一段命令行脚本程序。运行命令行脚本程序时,只需借助 PHP预处理器,无需借助任何WEB服务器和WEB浏览器。
(3)桌面应用程序:可以使用PHP编写图形界面的桌面应用程序。当然对于桌面应用程序而言,PHP并不是最好的选择。 使用PHP编写服务器端脚本程序是PHP 最常用的应用领域,这也是本书着重阐述的内容。

1.1.3 HTML内嵌式的脚本语言

PHP脚本程序中可包含文本、HTML代码以及PHP代码。例如程序helloworld.php如下。

这是我的第一个PHP程序:

图像说明文字

程序helloworld.php中,各部分说明如下。

“这是我的第一个PHP程序:”是一段文本信息。PHP程序中的文本信息将不被PHP预处理器处理,直接被WEB服务器输出到WEB浏览器。“
”是HTML代码。PHP程序中的HTML代码同样不被PHP预处理器处理,直接被WEB服务器输出到WEB浏览器,只不过WEB浏览器接收到HTML代码后,会对该HTML代码解释执行,例如WEB浏览器接收到“
”后,将在WEB浏览器产生一次换行。

“echo "hello world!";”和“echo date("Y年m月d日H时i分s秒");”是两条PHP代码,所有的PHP代码都要经PHP预处理器解释执行。PHP预处理器解释这两条PHP代码时,会将这两条代码解释为文本信息“hello world!”和WEB服务器主机的当前时间(例如“2010年3月9日13时41分31秒”),然后再将这些文本信息输出到WEB浏览器,最后WEB浏览器显示这些文本信息。

date()是一个日期时间函数,该函数需要一个字符串参数,例如"Y年m月d日H时i分s秒"。Y是year的第一个字母,m是month的第一个字母,d是day的第一个字母,H是hour的第一个字母,i是minute的第二个字母,s是second的第一个字母,分别代表WEB服务器当前的年、月、日、时、分、秒。

PHP代码通常以符号“<?php”开始,符号“?>”结束,这两个符号分别叫做PHP开始标记和结束标记。 PHP程序文件名中的扩展名通常使用“.php”,例如helloworld.php。

1.2 PHP脚本程序工作流程

运行PHP脚本程序,必须借助PHP预处理器、WEB服务器和WEB浏览器,必要时还需借助数据库服务器。其中WEB服务器的功能是解析HTTP,PHP预处理器的功能是解释PHP代码,WEB浏览器的功能是显示PHP程序的执行结果,数据库服务器的功能是保存执行结果。

1.2.1 WEB浏览器

WEB浏览器(WEB Browser)也叫网页浏览器,简称浏览器。浏览器是用户最为常用的客户端程序,主要功能是显示HTML网页内容,并让用户与这些网页内容产生互动。常见的浏览器有微软的Internet Explorer(简称IE)浏览器、Mozilla的Firefox浏览器等。

1.2.2 HTML简介

HTML是网页的静态内容,这些静态内容由HTML标记产生,WEB浏览器识别这些HTML标记并解释执行。例如WEB浏览器识别HTML标记“
”,将“
”标记解析为一个换行。在PHP程序开发过程中,HTML主要负责页面的互动、布局和美观。

1.2.3 PHP预处理器

PHP预处理器(PHP Preprocessor)的功能是将PHP程序中PHP代码解释为文本信息,这些文本信息中可以包含HTML代码。

1.2.4 WEB服务器

WEB服务器(WEB Server)也称为WWW(World Wide WEB)服务器,功能是解析HTTP。当WEB服务器接收到浏览器的一个HTTP动态请求时,WEB服务器会调用与请求对应的程序,程序经PHP预处理器解释执行后,WEB服务器向浏览器返回HTTP响应,该响应通常是一个HTML页面。浏览器接收到该HTTP响应后,将执行结果显示在浏览器或进行其他处理。

常见的WEB服务器有微软的Internet Information Server(IIS)服务器、IBM的WebSphere服务器、开源的Apache服务器等。由于Apache具有免费、速度快且性能稳定等特点,它已成为目前最为流行的WEB服务器。本书将使用Apache服务器部署PHP程序。

1.2.5 数据库服务器

数据库服务器(DataBase Server)是一套为应用程序提供数据管理服务的软件,这些服务包括数据管理服务(例如数据的添加、删除、修改、查询)、事务管理服务、索引服务、高速缓存服务、查询优化服务、安全及多用户存取控制服务等。

常见的数据库服务器有甲骨文的Oracle、微软的SQL Server、IBM的DB2、SAP的Sybase以及SUN公司的MySQL数据库服务器。由于MySQL具有体积小、速度快、免费等特点,许多中小型WEB系统选择MySQL作为数据库服务器。本书将选用MySQL讲解有关PHP应用程序中数据库开发方面的知识。

1.2.6 PHP程序的工作流程

PHP程序的工作流程如图1-1所示,具体步骤如下。

图像说明文字

(1)用户在浏览器地址栏中输入要访问的页面地址(形如http://localhost/1/helloworld.php),回车后就会触发该页面请求,并将请求传送给WEB服务器(步骤a)。
(2)WEB服务器接收到该请求后,根据请求页面文件名在WEB服务器主机中查找对应的页面文件(步骤b),并根据请求页面文件名的后缀(例如.html或.php)判断当前请求为静态页面请求还是动态页面请求。

当请求页面为静态页面时(例如请求页面文件名后缀为.html或.htm),直接将WEB服务器中的静态页面返回(步骤c),并将该页面作为响应发送给浏览器(步骤d)。

当请求页面为动态页面时(例如请求页面文件名后缀为.php),此时WEB服务器委托PHP预处理器将该动态页面中的PHP代码解释为文本信息(步骤c1);如果动态页面中存在数据库操作代码,PHP预处理器和数据库服务器完成信息交互(步骤c2)后,再将动态页面解释为静态页面(步骤c3);最后WEB服务器将该静态页面作为响应发送给浏览器(步骤d)。

图像说明文字

1.3 PHP服务器构建

为了构建PHP服务器,在服务器的选择上,我们选择免费开源的WEB服务器Apache和数据库服务器MySQL。对于初学者而言,Apache、MySQL以及PHP预处理器的安装和配置较为复杂,这里选择WAMP(Windows + Apache + MySQL + PHP)集成安装环境快速安装配置PHP服务器,省去安装配置服务器带来的麻烦,更快地进入PHP编程的殿堂。

目前两款常用的WAMP集成安装环境是WampServer和AppServ,它们都集成了Apache服务器、MySQL服务器和PHP预处理器。本书以WampServer为例介绍PHP服务器的安装和配置。

1.3.1 服务器安装前准备

WampServer软件由德国人开发,该软件在Windows操作系统平台下集成了Apache、MySQL和PHP,其中还自带phpMyAdmin软件,极大方便了PHP服务器的安装配置和使用。WampServer下载的官方网址是:http://www.wampserver.com/en/download.php,目前WampServer的较新版本是WampServer2.0i。打开该网站地址后,会看到如下警告信息。

WARNING : do not try to install WampServer 2 over WAMP5. If WAMP5 is installed on your computer, save your data, uninstall it and delete the WAMP5 directory before installing WampServer 2. (警告:不要试图在WAMP5上安装WampServer 2。如果WAMP5已经安装在计算机上,请保存程序和数据,然后卸载WAMP5。)

还会看到“DOWNLOAD WampServer 2.0i”超链接(如图1-2所示)。图中WampServer 2.0i安装程序使用的WEB服务器为Apache2.2.11(后面的数字为软件版本号),PHP预处理器为PHP5.3.0,数据库服务器为MySQL5.1.36。

以笔者主机为例,启动迅雷软件后,该软件默认会占用80端口号,这样有可能导致Apache服务器启动失败,使用下面的步骤即可停止占用80端口号的迅雷进程。

(1)选择“开始→运行”命令,打开“运行”窗口。
(2)在“运行”窗口中输入cmd命令,单击“确定”按钮。
(3)在命令提示符窗口中输入命令“netstat -aon”并按“Enter”键,如图1-3所示。

图像说明文字

(4)在Local Address列中查找占用80和3306端口号的程序,并记录对应的PID。
(5)由于当前启动的迅雷程序占用了80端口号,其对应的PID值为468,可以在命令提示符窗口中输入命令“tskill 468”杀死该迅雷进程。
(6)在命令提示符窗口中重新输入命令“netstat -aon”,即可看到迅雷进程已经被杀死,为成功启动Apache服务器铺平道路。

1.3.2 服务器安装

下载了WampServer安装程序,并进行了服务器安装前的准备工作后,就可以开始服务器的安装和配置了。

(1)双击WampServer2.0i.exe,进入WampServer程序安装欢迎界面,如图1-4所示。

图像说明文字

(2)单击“Next”按钮,出现许可条款界面,如图1-5所示。
(3)选中“I accept the agreement”(我同意条款)单选按钮,单击“Next”按钮,出现选择安装安装路径界面,如图1-6所示。WAMPServer默认的安装路径是“C:\wamp”,可以单击“Browse…”(浏览)按钮选择安装路径,这里使用默认安装路径。
(4)单击“Next”按钮,出现创建快捷方式选项界面,如图1-7所示,其中第一个复选框负责在快速启动栏中创建快捷方式,第二个复选框负责在桌面上创建快捷方式。
(5)单击“Next”按钮,出现信息确认界面,如图1-8所示。
(6)信息确认无误后,单击“Install”(安装)按钮,安装接近尾声时会提示选择默认的浏览器,如果不确定使用哪款浏览器,单击“打开”按钮就可以了,此时选择的是Windows操作系统默认的IE浏览器,如图1-9所示。

图像说明文字

(7)后续操作会提示输入一些PHP的邮件参数信息,这里保留默认的内容就可以了,如图1-10所示。单击“Next”按钮将进入完成WAMPServer安装界面,如图1-11所示。

图像说明文字

(8)当选中“Launch Wamp Server2 now”复选框时,单击“Finish”按钮后完成所有安装步骤,然后自动启动WampServer所有服务,并且任务栏的系统托盘中增加了WampServer图标。

图像说明文字

(9)打开IE浏览器,在地址栏中输入“http://localhost/”或“http://127.0.0.1/”后按“回车”键,若出现如图1-12所示界面,说明PHP服务器安装并启动成功(图1-12所示界面对应的是“C:\wamp\www”目录下的index.php文件)。

图像说明文字

1.3.3 PHP服务器启动与停止

PHP服务器包括Apache服务器和MySQL服务器,读者可以选择“手动启动PHP服务”或“操作系统自动启动PHP服务”两种方法启动PHP服务器。

方法1 手动启动、停止PHP服务器

单击任务栏的系统托盘中的 WampServer 图标,弹出如图1-13所示界面用于管理 WampServer服务器。

  • 单击“Start All Services”选项,则启动Apache服务和MySQL服务。
  • 单击“Stop All Services”选项,则停止Apache服务和MySQL服务。
  • 单击“Restart All Services”选项,则重启Apache服务和MySQL服务。

也可分别对Apache和MySQL服务进行启动、停止操作。以管理Apache服务器为例,在图1-13中单击“Apache”选项,将弹出如图1-14所示界面。在图1-14界面中可以选择Start(启动)、Stop(停止)和Restart(重新启动)Apache服务。

图像说明文字

方法2 操作系统自动启动PHP服务 步骤1 通过“开始→设置→控制面板”方式打开控制面板。 步骤2 通过“管理工具→服务”方式查看系统所有服务。 步骤3 在服务中找到wampmysqld和wampapache服务,这两个服务分别代表MySQL服务和Apache服务。双击某种服务,将“启动类型”由“手动”改为“自动”,单击“确定”按钮即可设置该服务为自动启动,如图1-15所示。

图像说明文字

图像说明文字

1.3.4 第一个PHP程序

PHP服务器安装并成功后,就可以开始PHP编程之旅了。以helloworld.php程序的编写和运行为例,该程序的开发步骤如下。

(1)在“C:\wamp\www”目录下新建一个名字为“1”的目录,并在该目录下新建一个文本文档(扩展名为txt),然后将该文件名称从“新建文本文档.txt”修改为“helloworld.php”。
(2)以记事本方式打开“helloworld.php”文件,然后输入1.1.3节中的helloworld.php代码。
(3)保存“helloworld.php”文件内容后,启动PHP服务器。
(4)打开IE浏览器,在地址栏中输入地址“http://localhost/1/helloworld.php”后按“回车”键。如果看到如图1-16所示的页面,则第一个PHP程序编写、运行成功。

为保证PHP程序文件的扩展名确实为php,不能隐藏已知文件类型的扩展名,显示文件扩展名的方法可参考如下步骤。

图像说明文字

1.单击“工具”→“文件夹选项”(如图1-17所示),弹出“文件夹选项”对话框(如图1-18所示)。

图像说明文字

2.在“文件夹选项”对话框中选择“查看”选项卡,取消 复选框的选中状态,然后单击“确定”按钮即可完成显示文件名的扩展名设置。

1.3.5 PHP服务器配置

细心的读者不难发现,当刷新图1-16页面时,显示的时间会实时更新,但页面显示时间与当前主机实际时间相差8小时。为了保证两个时间的一致性,还需要对PHP服务器进行相应的配置,其中包括PHP预处理器的配置、Apache的配置和MySQL的配置。

1.设置允许外网访问Apache服务

WampServer安装完毕并成功启动Apache服务器后,默认情况是禁止外网访问Apache服务的,如果希望对外开放Apache服务,需要进行如下几个步骤的设置。

(1)单击图1-13中的“Put Online”选项。
(2)单击系统托盘WampServer图标 ,选择“Apache→httpd.conf ”,打开httpd.conf配置文件。
(3)在httpd.conf配置文件中查找关键字“Deny from all”,在第一处“Deny from all”下手动输入“Allow from all”,保存httpd.conf配置文件,如图1-19所示。

图像说明文字

(4)修改httpd.conf配置文件后,必须重新启动Apache服务,新httpd.conf配置文件才能生效。此后其他主机便可使用Apache服务器所在的主机IP地址远程访问该Apache服务。

2.修改Apache服务端口号

WampServer安装完毕后,使用浏览器访问Apache服务时,默认使用80端口号,在浏览器地址栏中输入“http://localhost/”或“http://localhost:80/”时,访问的是同一个页面。可以通过如下步骤修改Apache服务的端口号。

(1)使用同样的方法在httpd.conf配置文件中查找关键字“Listen 80”。
(2)将80修改为别的端口号(例如8080),保存httpd.conf配置文件。
(3)重新启动Apache服务器,使新配置文件生效。此后访问Apache服务时,必须在浏览器地址栏中加入Apache服务的端口号(例如http://localhost:8080/)。

3.设置起始页

Apache服务器允许用户自定义起始页及其优先级,步骤如下。 (1)使用同样的方法在httpd.conf配置文件中查找关键字“DirectoryIndex”,如图1-20所示。

图像说明文字

(2)在DirectoryIndex关键字的后面设置起始页的文件名及其优先级(名称之间用空格隔开,优先级从左到右依次递减)。从图1-20中可以看出,WampServer安装完毕后,默认的网站起始页为index.php、index.php3、index.html、index.htm。因此在浏览器地址栏中输入“http://localhost/”时,Apache服务先去查找访问“c:/wamp/www/”目录下的index.php文件;若该文件不存在,则依次查找访问index.php3、index.html、index.htm文件。

4.设置Apache服务器主目录

使用浏览器访问本地Apache服务器时,默认情况下浏览器访问的是“c:/wamp/www/”目录下的页面文件,此时“c:/wamp/www/”目录称为Apache服务器主目录。当在浏览器地址栏中输入“http://localhost/1/helloworld.php”时,访问的是“c:/wamp/www/”目录下目录“1”中的helloworld.php程序文件。用户可以自定义Apache服务器主目录,步骤如下。

(1)使用同样的方法在httpd.conf配置文件中查找关键字 “DocumentRoot”,如图1-21所示(从图1-21中可以看出Apache服务器主目录默认为“c:/wamp/www/”目录)。
(2)修改httpd.conf配置文件,例如设置目录“c:/wamp/www/1/”为Apache服务器主目录,如图1-22所示。
(3)重新启动Apache服务器,使得新配置文件生效。此后在浏览器地址栏中直接输入“http://localhost/helloworld.php”时,Apache服务器将访问主目录“c:/wamp/www/1/”下的helloworld.php程序。

5.设置虚拟目录

由于一个Apache服务器只能设置一个主目录,为了实现在一台主机上能够同时存在多个“主目录”,需要不断地修改DocumentRoot路径、重启Apache服务,给Apache服务的维护带来了相当大的麻烦。解决该问题的办法就是设置虚拟目录,具体步骤如下。

图像说明文字

(1)在系统托盘中单击WampServer图标 ,选择“Apache→Alias directoris→Add an alias”,弹出命令行窗口。
(2)在冒号后边输入虚拟目录名称(例如chapterone),如图1-23所示。

图像说明文字

(3)按“回车”键后输入要映射的Windows目录(例如目录“c:/wamp/www/1/”),如图1-24所示。注意,若“c:/wamp/www/1/”目录不存在,将提示“This directory doesn’t exist.”信息,因此在创建虚拟目录时,首先创建要映射的Windows目录。

图像说明文字

(4)按“回车”键后创建Apache虚拟目录成功,再次按“回车”键退出创建虚拟目录对话框。

览器地址栏中输入“http://localhost/chapterone/helloworld.php”访问“c:/wamp/www/1/”目录下的helloworld.php程序。

有经验的读者也可以直接打开目录“C:\wamp\bin\apache\Apache2.2.11\conf”下的Apache配置文件httpd.conf,修改该文件的其他选项配置Apache的其他服务(初学者不建议这样做)。

6.PHP时区设置

PHP预处理器默认使用格林威治时间GMT,这样就产生一个问题:调用时间函数(例如date())产生的时间与实际时间相差8小时(中国的时间是GMT+8),通过如下步骤设置PHP时区,可以产生正确的时间。

(1)单击系统托盘WampServer 图标,选择“PHP→php.ini”,打开php.ini文件。
(2)在php.ini文件中查找关键字“date.timezone”。
(3)将PHP时区配置为:date.timezone = PRC,如图1-25所示。

图像说明文字

(4)重新启动服务器,使得服务器配置生效。再次访问helloworld.php程序时,将在页面上显示Apache服务器当前的主机时间。

7.PHP预处理器其他常用配置

php.ini文件是PHP的初始化配置文件,所在目录是“C:\wamp\bin\php\php5.3.0”。PHP 预处理器启动时自动读取该配置文件到服务器内存,从而实现PHP 某些初始运行状态的设置。下面介绍几个常用的配置选项。

short_open_tag = On:表示允许使用“<?”和“?>”作为PHP的开始标记和结束标记。
output_buffering = On:表示允许使用页面缓存。
display_errors = On:表示打开错误提示,在调试程序时经常使用。

WAMPServer同时提供了图形化界面配置php.ini文件。单击系统托盘WampServer 图标,选择菜单中的“PHP→PHP settings”或“PHP→PHP extensions”,依次单击对应的配置启用或关闭php.ini配置文件对应的选项。修改了配置选项后,WAMPServer会自动重启Apache服务。

8.为MySQL数据库服务器root账户设置密码

在MySQL数据库服务器中,用户名为root的账户具有数据库管理的最高操作权限。WampServer成功安装后,MySQL数据库服务器的root账户密码默认为空字符串,为数据安全埋下了隐患。phpMyAdmin是一个用PHP编写的,通过浏览器实现以图形界面的方式操作MySQL服务器的管理工具,用phpMyAdmin重新设置root账户密码的方法简单易学。

(1)单击任务栏的系统托盘WampServer 图标,选择“phpMyAdmin”打开phpMyAdmin主页面。
(2)在phpMyAdmin主页面的菜单中单击“Privileges”(权限)超链接,在“用户一览”可以看到root账户,单击root账户一行的 Edit Privileges(编辑权限)超链接(如图1-26所示),将弹出新的编辑页面。

图像说明文字

(3)在新编辑页面中找到如图1-27所示的内容,输入新密码(例如root)及确认密码(例如root),也可以单击“Generate”(生成)按钮自动生成随机密码。

图像说明文字

(4)单击“Go”按钮即可完成root账户密码的设置。
(5)在“C:\wamp\apps\phpmyadmin3.2.0.1”目录中查找config.inc.php文件。
(6)用记事本方式打开config.inc.php文件,找到如图1-28所示的代码部分。图1-28说明phpMyAdmin使用账户名为root,密码为空字符串的账户信息登录MySQL数据库服务器。

图像说明文字

(7)将root账户的密码修改为新密码(例如root),保存修改结果后,就可以继续使用phpMyAdmin操作管理MySQL服务器了。

目录

  • 第1章 PHP入门
  • 第2章 PHP基础
  • 第3章 PHP表达式
  • 第4章 PHP流程控制语句
  • 第5章 PHP数组
  • 第6章 PHP的数据采集
  • 第7章 自定义函数
  • 第8章 MySQL数据库
  • 第9章 PHP与MySQL数据库
  • 第10章 新闻发布系统的开发
  • 第11章 PHP会话控制
  • 第12章 字符串处理
  • 第13章 新闻发布系统的页面美工

同系列书

  • 微机原理、汇编语言与接口技术

    周杰英 张萍 郭雪梅 黄方军

      本书全面系统地论述了Intel 80x86系列机中16位微型计算机的基本原理、汇编语言程序设计和接口技术,...

    ¥39.50
  • VB语言程序设计教程(第2版)

    杨忠宝 刘向东 康顺哲 官宇哲

    本书作者在多年教学经验基础上,并根据学生的认知规律精心组织了本教材内容,并通过大量有现实意义的例题,深入浅出地...

    ¥39.80
  • Windows系统编程

    李晓黎

      Windows是个人计算机上最流行的操作系统,在国内外拥有众多家庭和商务用户,因此Windows系统编程可...

    ¥45.00
  • C语言程序设计

    宋万干 肖建于

    本书主要介绍C语言程序设计的相关知识。针对没有程序设计基础的读者,本书详细介绍了C语言的基本概念、语法及编程技...

    ¥39.80
  • 数据库系统原理与应用

    孟彩霞

      本书主要介绍数据库系统的基本概念和基本理论、应用技术和设计方法。内容包括数据模型和数据库系统结构、关系代数...

    ¥26.00
  • 面向对象程序设计及C++(第2版)

    朱立华 俞琼 郭剑 朱建

      本书是为已经掌握C语言知识,需要学习C++语言的读者编写的一本C++语言入门教材。   全书共分9章。第...

    ¥38.00
  • Java Web应用技术与案例教程

    杨树林 胡洁萍

      Java Web应用技术是当今最主流的Web程序开发技术之一。目前无论是高校的计算机专业,还是IT培训学校...

    ¥42.00
  • C语言程序设计——从入门到进阶

    巨同升 孙福振 薛磊江 贾凌

      本书在内容编排上,采用“应用驱动知识”的方式,即根据每一章应用目标的需求,合理地安排每一个知识主题的引入点...

    ¥26.50
人邮微信
本地服务
人邮微信
教师服务
二维码
读者服务
读者服务
返回顶部
返回顶部