php网络编程
‘壹’ 编写网页的编程语言有哪些
编写网页的编程语言大概有:
1、php
PHP是一个嵌套的缩写名称,是英文“超级文本预处理语言”(PHP:Hypertext Preprocessor)的缩写。PHP是一种HTML内嵌式的语言,与微软的ASP颇有几分相似,都是一种在服务器端执行的“嵌入HTML文档的脚本语言”,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。
2、java
Java是一个由Sun公司开发而成的新一代编程语言。是近年来很流行的一种网络编程语言,它由C语言发展而来,是完全面向对象的语言。在与网络的融合中,已显现出它的强大生命力和广阔的前景。
3、JSP
JSP(Java Server Pages,Java服务器页面)是在Sun Microsystems公司的倡导下,由许多公司共同参与建立的一种新的动态网页技术标准。它在动态网页的建设方面具有强大而特殊的功能。Sun公司应用组建“Java社团”的思想开发JSP技术。
4、ASP与ASP.NET
ASP是微软公司推出的意图取代CGI的新技术。通过它,用户可以使用几乎所有的开发工具来创建和运行交互式的动态网页。
5、HTML
脚本语言是介于HTML(HyperText Markup Language,超文本标示语言)传统的HTML是静态的,为增强网页的动态功能,一些厂商先后推出了自己的 脚本语言,其中Netscape推出了 (for客户端和 for服务端两种),微软则推出了 和ASP两种,用于服务器端和客户端程序的编写。
6、ColdFusion
具有计算机天赋的Jeremy Allire便在1995年编写了一种快速响应且易于编写的动态脚本语言,叫做coldfusion,一经推出,便震撼整个网络行业。
7、Visual Basic ing Edition
它也是一种HTML嵌入脚本语言
‘贰’ 如何使用PHP编程
PHP是一门高效的网络编程语言,由于它具有编写灵活、运行快速等优点,迅速成为Web程序员的首选语言。前不久的一份权威调查表明,现在已经有31.6%的网站使用PHP作为主要的服务器端编程语言。
但是,要成为一名PHP编程高手却并不容易。并不像很多人想象的那样,只要能够飞快地编写几条简单的代码去解决一个复杂的问题就是PHP编程高手了,真正的PHP高手还需要考虑更多的其它问题。以下三条准则是一名成熟的PHP程序员在编程中应该首先遵循的准则。
1.懒惰是金
2.编写漂亮的代码
3.追求程序的速度,而不是编程的速度
一、懒惰是金
做一个懒惰的程序员吗?这个想法太奇怪了!因为这个世界上最忙碌的人可能就是计算机程序员了。但正是因为程序员太忙了,所以才应该在编程时学会偷懒。
对于一个程序员来说,懒惰的方法有两种:其一,大胆使用现成的别人的程序代码,把这些代码融入到你自己的程序或者项目中去。其二是编写一些有用的代码建立一个函数库,在将来编写程序时可以顺手拈来,省去了许多重复的劳动,自然就可以懒惰一点了。
这两种偷懒的方法都非常适合PHP程序员了。
首先,PHP是在自由开放的环境中诞生和成长的一门语言。在世界各地,有成千上万的程序员,他们一直在为PHP的完美而不断奋斗,他们也愿意和别人分享自己的聪明才智和自己编写的代码。你每天都可以从一些PHP网站、邮件列表、新闻组发现大量的优秀的程序代码。这样说,我并不是鼓励你整天等着让别人为你编写代码,但是你可以“站在伟人的肩膀上”,充分发扬“拿来主义”,聪明地应用别人的程序代码可以节省你大量时间。其次,在PHP中,你可以方便地建立自己的函数库,这样可以在你以后编写程序时省去很多麻烦。
下面笔者为大家介绍几个通用的函数,这些函数有的来自网上的一些开放源代码的项目,有的精选自邮件列表。如果你能把它们加入到你自己的函数库中,迟早你将会发现自己受益无穷。
1.通用数据库处理函数
和其它的CGI函数相比,PHP的优点之一是具有很强大的数据库处理能力。但是,在PHP中,对于不同的数据库都使用一些特定的函数来专门处理,缺少通用的数据库处理函数。这大大降低了程序代码的可移植性,这也为初学编程的朋友带来了很多不便。
在网上,许多程序员都通过封装类解决了这个问题。他们编写了统一的函数用来处理任何流行的数据库——不管是在linux世界深受欢迎的Mysql还是在Windows平台上广泛流行的SqlServer。就笔者个人来说,非常喜欢使用这些函数,因为可以直接使用一些简单的诸如"query"、"next_record"之类的函数,而不需要考虑数据库的连接、数据库句柄这些复杂的东西,更不需要考虑使用的是何种数据库。
如果你需要这些函数,你可以通过访问以下的几个网址而得到:
http://phplib.netuse.de/
http://phpclasses.UpperDesign.com/browse.html/package/20
http://phpdb.linuxbox.com/
2.变量调试函数
PHP程序的调试一直是一件让人头疼的事,它既不像VB等高级语言那样有集成的编译调试环境,也不想Perl那样可以在Linux或者DOS环境下直接运行。其实,我们完全可以通过灵活地使用echo语句来完成对PHP的调试工作。
下面的几个函数可以让你随时查看程序中任何变量的类型及其值。
function ss_array_as_string (&$array, $column = 0) {
$str = "Array(
n";
while(list($var, $val) = each($array)){
for ($i = 0; $i < $column+1; $i++){
$str .= "&nbsp;&nbsp;&nbsp;&nbsp;";
}
$str .= $var. ==> ;
$str .= ss_as_string($val, $column+1)."
n";
}
for ($i = 0; $i < $column; $i++){
$str .= "&nbsp;&nbsp;&nbsp;&nbsp;";
}
return $str.);
}
function ss_object_as_string (&$object, $column = 0) {
if (empty($object->classname)) {
return "$object";
}
else {
$str = $object->classname."(
n";
while (list(,$var) = each($object->persistent_slots)) {
for ($i = 0; $i < $column; $i++){
$str .= "&nbsp;&nbsp;&nbsp;&nbsp;";
}
global $$var;
$str .= $var. ==> ;
$str .= ss_as_string($$var, column+1)."
n";
}
for ($i = 0; $i < $column; $i++){
$str .= "&nbsp;&nbsp;&nbsp;&nbsp;";
}
return $str.);
}
}
function ss_as_string (&$thing, $column = 0) {
if (is_object($thing)) {
return ss_object_as_string($thing, $column);
}
elseif (is_array($thing)) {
return ss_array_as_string($thing, $column);
}
elseif (is_double($thing)) {
return "Double(".$thing.")";
}
elseif (is_long($thing)) {
return "Long(".$thing.")";
}
elseif (is_string($thing)) {
return "String(".$thing.")";
}
else {
return "Unknown(".$thing.")";
}
}
需要的时候,在程序中简单地加入下面的一条代码即可查看程序中的所使用的变量(包括数组和对象)的类型和值:
echo ss_as_string($my_variable);
使用下面的语句,我们可以直接查看程序中所有的变量的值:
echo ss_as_string($GLOBALS);
3. 控制Log信息的函数
调试PHP程序的另外一种重要的方法就是查看Log信息。如果能够方便地控制Log信息的级别以及Log信息的显示内容,将会给程序调试带来更多的便利。下面的几个函数可以方便地实现这个功能。
$ss_log_level = 0;
$ss_log_filename = /tmp/ss-log;
$ss_log_levels = array(
NONE => 0,
ERROR => 1,
INFO => 2,
DEBUG => 3);
function ss_log_set_level ($level = ERROR) {
global $ss_log_level;
$ss_log_level = $level;
}
function ss_log ($level, $message) {
global $ss_log_level, $ss-log-filename;
if ($ss_log_levels[$ss_log_level] < $ss_log_levels[$level]) {
// 不显示Log信息
return false;
}
$fd = fopen($ss_log_filename, "a+");
fputs($fd, $level. - [.ss_timestamp_pretty().] - .$message."n");
fclose($fd);
return true;
}
function ss_log_reset () {
global $ss_log_filename;
@unlink($ss_log_filename);
}
在上面的函数中,有四个Log级别变量。运行PHP程序时,只有当Log的级别低于预设的级别值时,Log信息才可以被记录和显示出来。例如,在程序中加入如下的一条语句:
ss_log_set_level(INFO);
那么,运行PHP程序时,只有ERROR和INFO级别的LOG信息才能被记录和显示出来,DEBUG级的信息则被忽略了。除此之外,我们还可以设定显示的信息内容,其语句如下:
ss_log(ERROR, "testing level ERROR");
ss_log(INFO, "testing level INFO");
ss_log(DEBUG, "testing level DEBUG");
你也可以随时使用下面的语句清空LOG信息:
ss_log_reset();
4.速度测试函数
为了优化代码,我们需要一种可以测试代码运行时间的方法,从而来选择最优的代码。下面的函数可以测试运行代码所需的时间:
function ss_timing_start ($name = default) {
global $ss_timing_start_times;
$ss_timing_start_times[$name] = explode( , microtime());
}
function ss_timing_stop ($name = default) {
global $ss_timing_stop_times;
$ss_timing_stop_times[$name] = explode(, microtime());
}
function ss_timing_current ($name = default) {
global $ss_timing_start_times, $ss_timing_stop_times;
if (!isset($ss_timing_start_times[$name])) {
return 0;
}
if (!isset($ss_timing_stop_times[$name])) {
$stop_time = explode(, microtime());
}
else {
$stop_time = $ss_timing_stop_times[$name];
}
$current = $stop_time[1] - $ss_timing_start_times[$name][1];
$current += $stop_time[0] - $ss_timing_start_times[$name][0];
return $current;
}
现在可以轻松地检查任何一段代码的执行时间了,甚至我们可以同时使用多个计时器,只需在使用上述的几个函数时设定不同的参数作为计时器的名称就可以了。
5.调试和优化数据库的操作
对于数据库来说,运行速度是至关重要的。尽管很多书籍和文章都讲授了一些快速运行数据库的方法,但是所有的方法都必须经过实践的检验。下面我们将把PHPLib函数库中的query()函数和上面介绍的几个函数综合起来编写成新的query()函数,和原先的函数相比,这个函数增加了运行时间的监测功能。
function query($Query_String, $halt_on_error = 1) {
$this->connect();
ss_timing_start();
$this->Query_ID = @mysql_query($Query_String,$this->Link_ID);
ss_timing_stop();
ss_log(INFO, ss_timing_current(). Secs - .$Query_String);
$this->Row = 0;
$this->Errno = mysql_errno();
$this->Error = mysql_error();
if ($halt_on_error && !$this->Query_ID) {
$this->halt("Invalid SQL: ".$Query_String);
}
return $this->Query_ID;
}
二、编写漂亮的代码
1.将后台程序与前端程序分开
在编写PHP程序时,有些代码是用来处理一些事务,例如操作数据库、进行数学运算等,而另外的一些代码则只是事务处理的结果显示出来,例如一些使用echo语句将结果以HTML的格式显示在Web浏览器上的PHP代码以及那些直接嵌入PHP程序的HTML代码。首先我们应该清晰地区分这两种代码,把前者称为后台程序,把后者称为前端程序。
因为PHP是一种嵌入式编程语言,也就是说,所有的PHP代码都可以嵌入到HTML代码之中,这为程序的编写带来了许多便利之处。但是,“物极必反”,如果在一段较长的程序中将PHP代码和HTML代码混合编写,这将使程序杂乱无章,不利于程序的维护和阅读。所以我们需要尽可能地将这些程序中混杂于HTML代码中的PHP代码移植出来,在专门的文件中将这些代码封装成函数,然后在HTML代码中使用include语句来包含这些文件,在适当的位置调用这些函数即可。
这种做法一方面使HTML代码和PHP代码都简单易读,另一方面因为HTML代码需要不断更新,而这种分离的方法可以确保后台程序不会被破坏。
同前端程序不同,后台程序更多追求的是稳定、结构化,极少更改,所以应该认真地设计和管理。其实,在设计台程序时,投入大量时间是值得的,“现在栽树,以后乘凉”,在以后的设计工作中将可以轻松地使用现在编写的后台程序。
2.灵活使用包含文件
正如前面所说的那样,后台程序应当安排在一系列的包含文件中。包含文件可以通过include语句在需要时动态装入,也可以在php.ini文件中通过使用auto_prepend_file指令预先自动装入。
如果使用后一种方法的话,虽然取得了一劳永逸的好处,但是也有一些缺点值得我们注意。下面的一段代码向我们展示了解析一个庞大的包含文件需要一定的时间:
require(timing.inc);
ss_timing_start();
include(test.inc);
ss_timing_stop();
echo
.ss_timing_current().
;
?>
在上面的代码中,test.inc是一个1000行的包含文件,运行的结果显示,解析这个包含文件花费了0.6秒钟,对于一个大型网站来说,这个速度并不是可以忽略不记的。
使用包含文件的另外一个缺点是:如果一个文件中的一个语句发生错误,将会使整个网站的PHP程序都无法运行。所以使用起来也及其小心。
其实,对包含文件稍做处理,即可以使包含文件只在需要时进行解析。下面的代码使abc.inc文件只在程序需要时才作解析:
if ( defined( __LIBA_INC) ) return;
define( __LIBA_INC, 1 );
/*
* 代码...
*/
?>
3.使用面向对象的编程方法
PHP也是一种面向对象的语言,面向对象的编程方法是优秀的程序员们非常推崇的一种软件设计方法,在PHP编程中可以充分发挥面向对象语言的优势,对编程中的对象进行封装。在前面的代码中,我们使用了面向对象的方法,例如在管理数据库时,我们将query()函数封装进数据库类中,这极大地方便了代码的管理,增加了程序的可读性。
三、追求程序速度,而不是编程的速度
在网站建设中,程序运行速度和网页下载速度都是关系成败的重要因素。作为一名Web程序员,应该更加注意代码的运行速度。下面介绍的几种方法都在不同程度上提高了代码的运行速度。
1.使用内嵌的HTML代码,而不是PHP的echo语句。
因为PHP是一门嵌入式Web编程语言,可以将HTML代码和PHP代码相互嵌入。但是很多程序员担心在HTML代码中过多的使用""嵌入PHP代码会多次调用PHP解释器,从而降低了PHP代码的运行速度,所以宁愿使用PHP的echo语句来输出HTML代码,而不直接使用HTML代码。但事实却恰恰相反。每一个PHP页面只调用一次PHP解释器来解释所有的PHP代码,所以,只在需要时才嵌入PHP代码,而大多数的时候直接使用HTML代码输入结果,不但不会降低程序的运行速度,而且因为减少了对echo语句的解析,往往可以提高代码的运行速度。
下面的一段代码证明了我们的结论。在这段代码中,我们使用了前面介绍的时间测试函数。
使用str-replace而不是ereg-replace
习惯使用Perl进行编程的程序员更加愿意使用ereg_replace完成字符串替换工作,因为在PHP中ereg_replace的用法和Perl中模式匹配的用法相近。但是,下面的这段代码证明,使用str_replace 代替 ereg_replace将可以大大提高代码的运行速度。
测试str_replace和ereg_replace的运行速度
//这段代码测试str_replace的运行速度
emphasis; ?>
for ($i=0; $i<1000; $i++) {
str_replace(i>, b>, $string).
;
}
?>
//这段代码测试ereg_replace的运行速度
for ($i=0; $i<1000; $i++) {
ereg_replace(<([/]*)i>, <\1b>, $string).
;
}
?>
//打印结果
结论
使用str_replace的时间 -
使用ereg_pattern的时间 -
运行上面的代码,得到的结果是:
使用str_replace的时间 - 0.089757
使用ereg_pattern的时间 - 0.248881
从运行的结果我们可以看出使用str_replace替代ereg_replace作为字符串替换函数,极大地提高了代码的运行速度。
3.注意字符串的引用
PHP和其它很多编程语言一样,可以使用双引号("")来引用字符串,也可以使用单引号()。但是在PHP中,如果使用双引号来引用字符串,那么PHP解析器将首先分析字符串中有没有对变量的引用,有变量的话,将对变量进行替换。如果是单引号,则没有如此复杂——直接将单引号包含起来的所有字符串直接显示出来。显然,在PHP编程中,如果使用单引号引用字符串变量要比使用双引号快速一些。
4.在数据库中避免使用联合操作
比起其它的Web编程语言来说,PHP的数据库功能十分强大。但是在PHP中数据库的运行仍然是一件十分费时费力的事情,所以,作为一个Web程序员,要尽量减少数据库的查询操作,同时应该为数据库建立适当的索引。另一件值得注意的事情是在用PHP操作数据库时,尽可能不使用多个数据表的联合操作,尽管联合操作可以增强数据库的查询功能,但是却大大增加了服务器的负担。
为了说明这个问题,我们可以看看下面的这个简单的例子。
我们在数据库中创建了两个数据表foo和big_foo。在数据表foo中,只有一个字段,包含了从1-1000之间的所有自然数。数据表big_foo同样只有一个字段,但包含了从1-1,000,000之间的全部自然数。所以,从大小上说,big_foo等于foo与它自身进行了联合操作。
$db->query("select * from foo");
0.032273 secs
$db->next_record();
0.00048999999999999 secs
$db->query("insert into foo values (NULL)");
0.019506 secs
$db->query("select * from foo as a, foo as b");
17.280596 secs
$db->query("select * from foo as a, foo as b where a.id > b.id");
14.645251 secs
$db->query("select * from foo as a, foo as b where a.id = b.id");
0.041269 secs
$db->query("select * from big_foo");
25.393672 secs
从上面操作结果我们可以发现,对于两个有1000条记录的数据表进行联合,其速度并不比对一个1000000条纪录的大型数据表单独进行操作快多少。
5.注意include与require的区别
在PHP变成中,include()与require()的功能相同,但在用法上却有一些不同,include()是有条件包含函数,而require()则是无条件包含函数。例如在下面的一个例子中,如果变量$somgthing为真,则将包含文件somefile:
if($something){
include("somefile");
}
但不管$something取何值,下面的代码将把文件somefile包含进文件里:
if($something){
require("somefile");
}
下面的这个有趣的例子充分说明了这两个函数之间的不同。
$i = 1;
while ($i < 3) {
require("somefile.$i");
$i++;
}
在这段代码中,每一次循环的时候,程序都将把同一个文件包含进去。很显然这不是程序员的初衷,从代码中我们可以看出这段代码希望在每次循环时,将不同的文件包含进来。如果要完成这个功能,必须求助函数include():
$i = 1;
while ($i < 3) {
include("somefile.$i");
$i++;
}
6.注意echo和print的区别
PHP中echo和print的功能也基本相同,但是两者之间也有细微差别。在PHP代码中可以把print作为一个普通函数来使用,例如执行下面的代码后变量$res的值将为1。
$ret = print "Hello World";
这意味着print可用在一些复杂的表达式中,而echo则不行。同样,在代码中echo语句的运行速度要略微快于print语句,因为echo语句不要求返回任何数值.
‘叁’ 编程软件哪个比较好用
这个语言类很多,工具也不同。你要明确你自己需要学习使用的需要。对于我而言,安卓开发,使用Javakotlinc需要。以前用eclipse,sourceinsight。因为eclipse已经明确不支持维护了,主流使用androidstudio。
java,python吧,java火了这么久不是没原因的,最近python最近势头也不错,不过感觉一门语言学好就不错了??
不知道其余他人怎么回答的,Java,Python和C++都是编程语言,楼主问的是编程软件,二者是两码事啊!
对于编程软件的话,不同的编程语言有各自好用的编程软件!
比如Java的话现在idea特别火,比较智能好用,但eclipse用的也比较多!
.NET系列编程语言比如C#、VB、VC++等首选visualstudio!
Python的话比如Anaconda,Pythontutor比较火!
PHP的话开发工具很多,phpDesigner还有EclipsePHP,zendstuido那个软件太大了,当然你也可以下载试试,只要你机子带得起来!
目前流行的编程语言主要有:java,js,c/c++,python,c#,golang等。其中java主要服务器,大数据开发应用比较广泛,当然也可用于android,不过由于google和甲骨文的版权问题,java已被kotlin逐渐替代,js主要是在前度开发领域应用比较多,当然也可以基于nodejs进行服务器端开发工作,c/c++相对于较偏底层一些,主要在性能要滚乎嫌求极高的地方应用,像多媒体,游戏领域,通信领域等,python目前主要在人工大手智能领域应用比较广泛,当然也能用于服务端开发,自动化测试等方面的应用,c#作为微软的主推语言,随着core版本的推出目前已经完全跨平台,在服务端开发,移动端开发,桌顷旅面开的等都能胜任,但其生态比java差不少,导致开发者没有java多,golang是google推出的的一门编程语言特点是开发并发程序上有很大的优势,随着很多成功的案例,也成为了很多互联网公司的主打语言。
目前常见的有java,C语言,C++,Python。
java可以做后段开发
c/c++可以做嵌入式
python是最近几年很火的一门语言,可以做软件自动化测试,网络爬虫,人工智能等
主要有:BASIC、PASCAL、C、COBOL、FORTRAN、LOGO以及VC、VBjava等最受欢迎的依次为c、java、c++、php。
1、CC++常用软件是MSVC++(6.0和更高版本)集成在微软的开发工具visualstudio中,JAVA桌面编程常用软件是netbean,网络编程是MyEclipse(包括了常用的Eclipse和常用工具,目前Java最流行的网络编程软件)。
2、C#没有别的软件,就是MSVC#,也集成在了Visualstudio中,常用的是2005版,还有2008,微软官方有下载,有免费的学习版。
‘肆’ PHP网络编程标准教程的目录
第1章 PHP概述001
1.1什么是PHP002
1.2PHP开发语言的特点002
1.3PHP的发展趋势003
1.4如何学好PHP004
1.5PHP的语法结构005
1.5.1PHP标识符的规则005
1.5.2PHP标记符的作用005
1.6程序注释006
1.6.1使用PHP注释006
1.6.2使用HTML注释007
1.6.3有效使用注释007
1.7PHP输出指令008
1.7.1应用print()语句输出字符008
1.7.2应用echo()语句输出字符009
1.7.3应用printf()语句格式化输出字符010
1.7.4应用sprintf()语句格式化输出字符011
1.8PHP包含语句011
1.8.1应用include()语句包含文件011
1.8.2应用require()语句包含文件012
1.8.3应用include_once()语句包含文件013
1.8.4应用require_once()语句包含文件013
1.8.5include()语句和require()语句的区别014
1.8.6include_once()语句和require_once()语句的区别016
1.9PHP动态网页的工作流程016
1.10体验PHP——编写第1个PHP Web016
1.10.1创建站点016
1.10.2使用Dreamweaver创建PHP文件017
1.10.3创建PHP标记017
1.10.4编写PHP代码017
1.10.5存储文件018
1.10.6网站运行结果018
1.11获取帮助信息018
1.11.1PHP学习工具和资料下载019
1.11.2获取PHP的源代码资源019
1.12本章小结020
第2章PHP环境的安装与配置021
2.1Windows下应用AppServ快速配置PHP开发环境022
2.2Windows下Apache+MySQL+PHP的安装配置024
2.2.1Windows下Apache的安装配置024
2.2.2Windows下MySQL的安装配置027
2.2.3Windows下PHP的安装配置028
2.3在Windows下架设IIS+PHP的执行环境029
2.3.1IIS的安装030
2.3.2架设PHP到IIS030
2.4Linux下Apache+MySQL+PHP的安装配置032
2.4.1Linux下Apache的安装配置032
2.4.2Linux下MySQL的安装配置033
2.4.3Linux下PHP的安装配置034
2.5获取PHP的配置信息035
2.5.1Apache服务器的基本配置035
2.5.2php.ini文件的基本配置035
2.6解决PHP的常见配置问题037
2.6.1解决Apache服务器端口冲突037
2.6.2更改Apache服务器默认存储的文件路径037
2.6.3在php.ini文件中更改上传文件的大小037
2.6.4增加PHP扩展模块038
2.6.5修改php.ini文件以支持MySQL数据库038
2.7本章小结038
第3章PHP语言基础039
3.1PHP常量040
3.1.1声明和使用常量040
3.1.2预定义常量041
3.2PHP变量042
3.2.1理解变量042
3.2.2声明变量043
3.2.3变量作用域043
3.2.4可变变量045
3.2.5预定义变量045
3.2.6变量的生存周期046
3.3数据类型046
3.3.1标量数据类型046
3.3.2复合数据类型050
3.3.3特殊数据类型051
3.3.4转换数据类型052
3.3.5检测数据类型053
3.4PHP的运算符054
3.4.1操作算术运算符054
3.4.2操作字符串运算符055
3.4.3操作赋值运算符055
3.4.4操作位运算符056
3.4.5递增或递减运算符056
3.4.6操作逻辑运算符057
3.4.7操作比较运算符058
3.4.8其他运算符059
3.4.9运算符的使用规则059
3.5PHP的表达式060
3.6自定义函数061
3.6.1定义和调用函数061
3.6.2在函数间传递参数062
3.6.3函数的返回值063
3.7本章小结064
第4章流程控制语句065
4.1算法066
4.1.1什么是算法066
4.1.2算法的描述方法066
4.1.3程序的3种控制结构067
4.2条件控制语句068
4.2.1if条件控制语句068
4.2.2switch多分支语句070
4.2.3if和switch语句的区别072
4.3循环语句074
4.3.1while循环语句074
4.3.2do...while循环语句076
4.3.3for循环语句077
4.3.4foreach循环语句078
4.3.5各循环语句间的区别079
4.4跳转语句080
4.4.1break跳转语句080
4.4.2continue跳转语句081
4.4.3return跳转语句082
4.5try…catch…throw语句083
4.6流程控制语句的嵌套083
4.7本章小结084
第5章 PHP与Web页面交互085
5.1表单数据的提交方式086
5.1.1通过GET方法提交数据086
5.1.2通过POST方法提交数据087
5.2获取提交的表单数据088
5.2.1获取按钮的数据088
5.2.2获取文本区域的数据089
5.2.3获取单选按钮的数据090
5.2.4获取复选框的数据091
5.2.5获取列表框的数据092
5.2.6获取文本域的数据093
5.2.7获取文件域的数据094
5.2.8获取隐藏域的数据094
5.3在PHP中处理表单变量095
5.4对表单传递的变量值进行编码与解码096
5.4.1URL编码与解码096
5.4.2BASE64编码与解码097
5.5本章小节098
第6章字符串操作099
6.1字符串简介100
6.2单引号和双引号的区别100
6.3字符串的连接符101
6.4字符串操作101
6.4.1去除字符串首尾空格和特殊字符101
6.4.2字符串与HTML相互转换103
6.4.3转义、还原字符串数据104
6.4.4获取字符串的长度106
6.4.5截取字符串107
6.4.6比较字符串108
6.4.7检索字符串111
6.4.8替换字符串113
6.4.9格式化字符串116
6.4.10连接、分割字符串117
6.4.11URL编码解码函数119
6.5本章小结121
第7章正则表达式122
7.1什么是正则表达式123
7.1.1正则表达式的发展史123
7.1.2正则表达式中的术语123
7.2正则表达式的语法规则123
7.2.1行定位符(^和$)124
7.2.2单词定界符(、B)125
7.2.3字符类([ ])125
7.2.4选择字符(|)126
7.2.5连字符(-)127
7.2.6排除字符([^])127
7.2.7限定符(? * + {n,m})127
7.2.8点号字符(.)128
7.2.9转义字符()128
7.2.10反斜线()128
7.2.11括号字符(())129
7.2.12反向引用130
7.2.13捕获130
7.2.14断言(环视)130
7.2.15模式修饰符131
7.2.16模式匹配的顺序131
7.3POSIX扩展正则表达式函数132
7.3.1ereg()函数和eregi()函数132
7.3.2ereg_replace()函数和eregi_replace()函数133
7.3.3split()函数和spliti()函数134
7.4PCRE兼容正则表达式函数135
7.4.1preg_grep()函数135
7.4.2preg_match()函数和preg_match_all()函数135
7.4.3preg_quote()函数137
7.4.4preg_replace()函数137
7.4.5preg_replace_callback()函数137
7.4.6preg_split()函数138
7.5本章小结138
第8章 PHP数组139
8.1数组的概述140
8.2数组的基本操作140
8.2.1声明数组140
8.2.2输出数组141
8.2.3定位数组141
8.2.4遍历数组143
8.2.5增加、删除数组元素147
8.2.6确定数组大小和惟一性149
8.2.7数组的排序150
8.2.8数组的合并与拆分151
8.2.9数组和字符串之间的转换154
8.3其他数组函数155
8.3.1创建指定范围的数组155
8.3.2对数组中的元素进行随机排序156
8.3.3对数组中所有元素进行求和156
8.3.4将一维数组拆分为多维数组157
8.4PHP全局数组158
8.4.1$_SERVER[ ]全局数组158
8.4.2$_GET[ ]和$_POST[ ]全局数组158
8.4.3$_COOKIE全局数组158
8.4.4$_ENV[ ]全局数组158
8.4.5$_REQUEST[ ]全局数组158
8.4.6$_SESSION[ ]全局数组158
8.4.7$_FILES[ ]全局数组159
8.5本章小结160
第9章日期和时间161
9.1日期和时间的概述162
9.2处理日期和时间162
9.2.1获取日期和时间163
9.2.2获取日期和时间信息164
9.2.3检验日期和时间的有效性165
9.2.4输出格式化的日期和时间166
9.3PHP的时间戳168
9.3.1PHP中的时间戳168
9.3.2获取格林威治标准时间的时间戳168
9.3.3获取本地化时间戳169
9.3.4获取当前时间戳171
9.4本章小结171
第10章文件和目录处理技术172
10.1文件处理技术的基本操作173
10.1.1打开文件173
10.1.2读取文件173
10.1.3写入文件178
10.1.4删除文件179
10.1.5关闭文件179
10.1.6复制文件179
10.1.7移动和重命名文件180
10.2文件的高级处理技术180
10.2.1访问远程文件181
10.2.2测试文件指针的位置181
10.2.3文件指针的定位181
10.2.4锁定文件183
10.3目录操作技术183
10.3.1打开目录183
10.3.2读取目录183
10.3.3建立目录184
10.3.4删除目录184
10.3.5改变目录185
10.3.6关闭目录185
10.4文件上传和下载技术185
10.4.1开启PHP文件上传功能185
10.4.2POST方法上传文件186
10.4.3上传多个文件187
10.4.4生成临时文件188
10.4.5下载文件188
10.5本章小结189
第11章图形图像处理技术190
11.1GD函数库的概述191
11.1.1Windows下打开GD2函数库支持191
11.1.2Linux下打开GD2函数库支持191
11.1.3应用GD2函数创建图像192
11.2基本的图像处理技术193
11.2.1创建画布193
11.2.2设置颜色193
11.2.3生成图像194
11.2.4销毁图像195
11.2.5绘制点与线195
11.2.6绘制几何图形197
11.2.7填充几何图形198
11.2.8输出文字201
11.3Jpgraph的安装与配置203
11.3.1Jpgraph的安装204
11.3.2Jpgraph的配置204
11.4图形图像的典型应用204
11.4.1应用图像处理技术生成验证码204
11.4.2应用图像处理技术生成饼形图206
11.4.3应用柱形图统计商品月销量208
11.4.4应用折线图分析学习PHP的过程209
11.5本章小结210
第12章 Cookie和会话控制211
12.1概述212
12.1.1Cookie概述212
12.1.2会话控制212
12.2Cookie的操作212
12.2.1设置Cookie212
12.2.2访问Cookie213
12.2.3删除Cookie213
12.2.4Cookie数组214
12.3Cookie的应用215
12.4会话的操作216
12.4.1会话的基本方式216
12.4.2配置PHP的会话217
12.4.3创建会话217
12.5会话的应用219
12.5.1登录验证219
12.5.2通过Session禁用页面刷新221
12.6本章小结222
第13章面向对象223
13.1概述224
13.1.1面向对象的概念224
13.1.2面向对象语言的3大特点224
13.1.3PHP 5.0面向对象的新特性225
13.2类和对象225
13.2.1类的结构及声明方式225
13.2.2属性和方法的定义225
13.2.3使用构造函数226
13.2.4使用析构函数227
13.2.5类的实例化227
13.3控制访问权限228
13.4类的继承和重载228
13.4.1继承的概念228
13.4.2PHP中实现继承的方法228
13.4.3重载的概念229
13.4.4PHP中实现类重载的方法229
13.4.5用final关键字对继承和重载进行限制229
13.5接口230
13.5.1接口的概念230
13.5.2PHP实现接口230
13.6PHP面向对象新特性231
13.6.1Per-Class常量的应用231
13.6.2对象的克隆231
13.6.3__autoload()方法232
13.6.4使用instanceof关键字判断实例类型232
13.6.5使用this关键字调用类成员232
13.6.6使用parent关键字调用父类成员233
13.6.7使用self关键字调用类体中的静态成员233
13.6.8辅助函数234
13.7PHP中面向对象的应用238
13.7.1应用面向对象的方式实现用户身份验证238
13.7.2数据的分页显示239
13.8本章小结241
第14章 MySQL数据库基础242
14.1MySQL概述243
14.1.1MySQL的特点243
14.1.2SQL和MySQL243
14.2MySQL服务器的启动和关闭244
14.2.1启动MySQL服务器244
14.2.2连接MySQL服务器245
14.2.3关闭MySQL服务器245
14.3操作数据库246
14.3.1创建数据库246
14.3.2选择数据库247
14.3.3删除数据库247
14.4操作数据表247
14.4.1创建表248
14.4.2修改表249
14.4.3删除表249
14.5操作数据250
14.5.1添加语句(INSERT)250
14.5.2修改语句(UPDATE)251
14.5.3删除语句(DELETE)251
14.5.4批量增加记录语句(LOAD DATA和MYSQLIMPORT)251
14.6数据查询语句252
14.6.1运用SELECT查询(对数据表的选择)252
14.6.2WHERE条件语句的应用253
14.6.3GROUP BY 对结果分组254
14.6.4DISTINCT在结果中去除重复行254
14.6.5ORDER BY对结果排序254
14.6.6LIKE应用255
14.6.7CONCAT联合多列255
14.6.8LIMIT限定结果行数256
14.6.9使用函数和表达式256
14.7数据类型257
14.7.1数字类型257
14.7.2字符串类型258
14.7.3日期和时间数据类型259
14.8PhpMyAdmin图形化管理工具260
14.8.1库级操作260
14.8.2表级操作261
14.8.3增删改数据262
14.8.4查询数据263
14.8.5数据的导入与导出264
14.9本章小结266
第15章数据库编程技术267
15.1PHP操纵MySQL数据库268
15.1.1建立与MySQL数据库的连接268
15.1.2选择和使用MySQL数据库268
15.1.3执行SQL指令269
15.1.4分析结果集269
15.1.5断开与MySQL数据库的连接270
15.2管理MySQL数据库中的数据271
15.2.1向数据库中添加数据271
15.2.2编辑数据库数据272
15.2.3从数据库中删除数据274
15.2.4批量数据操作276
15.3对MySQL表的查询277
15.3.1通用查询277
15.3.2高级查询279
15.3.3分组统计280
15.3.4对查询结果分页显示282
15.3.5对查询结果进行跳转分页显示283
15.4数据备份和恢复286
15.5本章小结288
第16章PHP的字符编码289
16.1了解网页字符编码290
16.1.1ASCII 字符集290
16.1.2ISO 8859 字符集290
16.1.3GB2312与GBK编码290
16.1.4Unicode字符集291
16.1.5UTF-8编码291
16.2PHP网页的字符编码292
16.2.1正确使用文件编码292
16.2.2编码转换293
16.2.3检测字符串的编码294
16.2.4字符编码的优先级294
16.2.5乱码产生的根源和解决方案295
16.3PHP开发中的中文编码问题295
16.3.1数据库中的字符集编码问题295
16.3.2解决页面中的乱码问题296
16.3.3通过PHP自定义函数无乱码截取中文字符串298
16.4PHP的区域化设置300
16.4.1PHP网页的区域化301
16.4.2使用setlocale()函数设置区域化302
16.5本章小节302
第17章 PHP的调试与异常处理303
17.1基本调试策略304
17.2常见错误分析304
17.2.1语法错误304
17.2.2语义错误307
17.2.3注释错误307
17.2.4运行错误308
17.2.5逻辑错误310
17.3PHP.INI中的错误处理设置310
17.4错误处理312
17.4.1错误的隐藏312
17.4.2错误的定制312
17.4.3超时错误的处理313
17.5程序调试313
17.5.1应用DIE语句调试313
17.5.2应用PRINT语句调试314
17.5.3应用MySQL_error语句输出错误信息315
17.6MySQL的常见错误316
17.6.1PHP与MySQL连接错误316
17.6.2解决数据库乱码问题317
17.6.3上传二进制数据到数据库失败317
17.7本章小结319
第18章PHP与XML的网络开发320
18.1XML的概述321
18.2XML语法321
18.2.1XML文档结构321
18.2.2XML声明321
18.2.3处理指令322
18.2.4XML注释322
18.2.5XML元素322
18.2.6XML属性323
18.2.7使用CDATA标记323
18.2.8XML命名空间324
18.3在PHP中创建XML文档324
18.4通过DOM操作XML文档325
18.4.1通过DOM类库创建XML文档325
18.4.2通过getElementsByTagName()方法读取XML327
18.4.3通过DOM类库向XML中添加数据328
18.4.4通过Xpath查询XML中的数据330
18.4.5通过replaceChild()方法修改XML文档331
18.4.6通过removeChild()方法删除XML文档334
18.5本章小结335
第19章 Smarty模板技术336
19.1Smarty简介337
19.1.1什么是Smarty337
19.1.2Smarty与MVC337
19.1.3Smarty的特点337
19.2Smarty的安装配置337
19.2.1Smarty下载与安装337
19.2.2第1个Smarty程序338
19.2.3配置Smarty339
19.3Smarty模板设计340
19.3.1Smarty模板文件340
19.3.2注释340
19.3.3变量340
19.3.4修饰变量(variable modifers)343
19.3.5内建函数344
19.3.6自定义函数349
19.4Smarty程序设计351
19.4.1Smarty中的常用方法352
19.4.2Smarty的配置变量353
19.4.3Smarty缓存354
19.5本章小结354
第20章注册和登录355
20.1设计思路356
20.1.1功能阐述356
20.1.2程序业务流程356
20.1.3文件组织结构356
20.2数据库设计357
20.3连接数据库358
20.3.1关键函数358
20.3.2功能实现359
20.4用户注册模块359
20.4.1关键函数359
20.4.2页面设计360
20.4.3功能实现361
20.5检测用户是否被占用362
20.5.1关键函数362
20.5.2页面设计363
20.5.3功能实现364
20.6验证用户注册信息是否合法365
20.6.1关键函数365
20.6.2功能实现365
20.7用户登录366
20.7.1关键函数366
20.7.2页面设计367
20.7.3功能实现368
20.8图片验证码功能369
20.8.1关键函数介绍369
20.8.2页面设计371
20.8.3功能实现371
20.9退出登录功能372
20.9.1关键函数372
20.9.2功能实现372
20.10本章小节372
第21章留言本373
21.1设计思路374
21.1.1功能阐述374
21.1.2程序业务流程374
21.1.3文件组织结构375
21.2数据库设计376
21.3连接数据库377
21.3.1关键函数介绍377
21.3.2功能实现377
21.4添加留言模块378
21.4.1关键函数378
21.4.2页面设计378
21.4.3功能实现380
21.5查看留言模块381
21.5.1关键函数381
21.5.2页面设计381
21.5.3功能实现381
21.6修改留言模块383
21.6.1关键函数383
21.6.2页面设计384
21.6.3功能实现385
21.7删除留言模块386
21.7.1关键函数386
21.7.2页面设计386
21.7.3功能实现387
21.8查询留言模块388
21.8.1关键函数388
21.8.2页面设计388
21.8.3功能实现389
21.9本章小结390
第22章电子商务391
22.1需求分析392
22.2系统分析和设计392
22.2.1可行性分析392
22.2.2功能结构分析和设计392
22.2.3系统流程概述393
22.2.4开发环境394
22.3数据库设计394
22.3.1数据库的分析395
22.3.2创建数据库395
22.3.3创建数据表395
22.3.4数据表的结构395
22.4技术准备398
22.4.1代码书写规则398
22.4.2网站架设之初398
22.4.3文件管理规划399
22.5前台开发399
22.5.1设计分析399
22.5.2前台首页的实现399
22.5.3商品展示模块的实现402
22.5.4购物车的实现405
22.5.5收银台的实现408
22.5.6用户登录模块的实现409
22.5.7本站公告模块的实现417
22.6后台开发418
22.6.1设计分析418
22.6.2后台首页418
22.6.3后台登录模块420
22.6.4商品信息管理模块422
22.6.5短信管理模块426
22.6.6订单信息管理模块428
22.7电子商务完整清单431
22.8本章小结432
第23章播客433
23.1了解播客434
23.1.1播客起源434
23.1.2播客的发展前景434
23.2系统设计435
23.2.1系统功能概述435
23.2.2系统功能结构435
23.2.3系统流程概述436
23.2.4开发环境437
23.2.5文件夹组织结构437
23.3Adodb类库的安装配置437
23.4数据库设计438
23.4.1数据库的分析438
23.4.2创建数据库438
23.4.3创建数据表438
23.5前台开发439
23.5.1设计分析439
23.5.2在线播放功能的实现440
23.5.3最新推出功能的实现448
23.5.4上传视频文件功能的实现450
23.5.5视频下载功能的实现452
23.5.6创建播客个人主页453
23.5.7站内订阅457
23.5.8订阅管理458
23.6后台开发462
23.6.1设计分析462
23.6.2上传视频管理功能的实现463
23.6.3动态创建视频文件类型465
23.6.4管理员管理466
23.7本章小结468
附录实例快速检索469