php网站开发案例教程课件.ppt_第1页
php网站开发案例教程课件.ppt_第2页
php网站开发案例教程课件.ppt_第3页
php网站开发案例教程课件.ppt_第4页
php网站开发案例教程课件.ppt_第5页
已阅读5页,还剩174页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PHP网站开发案例教程,2180,目录,第1章 配置PHP开发环境,第2章 PHP语言基础,第3章 数组与函数,第4章 字符串与正则表达式,第5章 构建PHP互动网页,第6章 PHP文件编程,第7章 PHP图像处理,第8章 MySQL数据库管理,第9章 PHP数据库编程,第10章 会员管理系统设计,3180,第1章 配置PHP开发环境,1.1 PHP开发组件介绍,1.2 配置PHP开发环境,4180,1.1 PHP开发组件介绍,1.1.1 Apache服务器 Apache是一款流行的Web服务器软件。据调查,目前在Internet 上大约有50%以上的Web服务器都在用Apache。Apach

2、e功能强大、 性能稳定,而且是完全免费的,完全开放源代码,可以从Internet 上自由下载。 Apache服务器的主要特点 支持多种Web编程语言。 安全性高。 扩展性好。 UNIX线程。 新的编译系统。 对非UNIX平台更好的支持。,第1章目录,5180,1.1 PHP开发组件介绍,1.1.2 PHP语言 PHP是一种流行的开放源代码的Web编程语言,主要用于开发 服务器端应用程序及动态网页。 PHP语言的主要特点 开放性源代码。 运行于服务器端。 跨平台性。 语言简单易学。 执行效率高。 图像处理功能。 数据库访问功能。 面向对象编程。 可伸缩性。,第1章目录,6180,1.1 PHP开

3、发组件介绍,1.1.3 MySQL数据库 MySQL是目前最受欢迎的开源SQL数据库管理系统,它由 MySQL AB开发、发布和支持。MySQL是一个快速的、多线程、 多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、 重负载生产系统的使用。MySQL是一款完全免费的数据库产品。 MySQL数据库服务器的特点 快速、可靠、易于使用。 工作在客户端/服务器模式下或嵌入式系统中。 真正的多线程。 跨平台性。 数据类型丰富。 安全性好。 处理大型数据库。 连接性好。,第1章目录,7180,1.2 PHP开发环境配置,1.2.1 安装和测试Apache Apache的下载网址: http

4、://download.cgi 文件: apache_2.2.4-win32-x86-no_ssl.msi。 1. 安装Apache服务器 2. 测试Apache服务器 在IE浏览器的地址栏输入以下网址: http:/localhost/,第1章目录,8180,1.2 PHP开发环境配置,1.2.2 配置Apache服务器 1. Listen指令 Listen指令用于设置Apache服务器监听的IP地址和端口 Listen IP-address:portnumber protocol 2. DocumentRoot指令 DocumentRoot指令用于设置网站文

5、档的根目录 DocumentRoot directory-path 3. Alias指令 Alias指令用于映射指向文件系统某个物理目录的URL: Alias URL-path file-path|directory-path 4. DirectoryIndex指令 DirectoryIndex指令用于设置当客户端请求一个目录时寻找的资源列表,也就是为网站指定一组默认文档 DirectoryIndex local-url local-url .,第1章目录,9180,1.2 PHP开发环境配置,第1章目录,1.2.3 管理Apache服务器,10180,1.2 PHP开发环境配置,第1章目录,

6、1.2.4 安装和配置PHP 1. 下载和安装PHP PHP 5.2.3下载网址: 文件: php-5.2.3-Win32.zip。 PHP的安装: 把zip压缩包解压缩到指定的文件夹中,11180,1.2 PHP开发环境配置,第1章目录,1.2.4 安装和配置PHP 2. 配置PHP 通过编辑文件php.ini来实现。 把PHP目录中的php.ini-dist文件复制到Apache目录中,把文件php.ini-dist重命名为php.ini。 设置动态模块的加载路径: extension_dir = F:PHPext 设置PHP的文档根目录: doc_root = F:phpdocs 设置保

7、存会话信息的目录: session.save_path = /tmp 设置错误信息显示选项: display_errors = On 设置服务器默认时区: date.timezone = PRC,12180,1.2 PHP开发环境配置,第1章目录,1.2.4 安装和配置PHP 3. 通过修改httpd.conf文件让Apache支持PHP CGI二进制文件方式: ScriptAlias /php/ F:/php/ AddType application/x-httpd-php .php Action application/x-httpd-php /php/php-cgi.exe“ DLL动态

8、链接库模块方式: 把PHP安装目录中的php5ts.dll文件复制到Windows系统的system32文件夹中 LoadModule php5_module F:/php/php5apache2_2.dll AddType application/x-httpd-php .php,13180,1.2 PHP开发环境配置,第1章目录,1.2.4 安装和配置PHP 4. 测试PHP 文件内容: 测试URL: http:/localhost/chap01/page1-01.php 运行结果,14180,1.2 PHP开发环境配置,第1章目录,1.2.5 安装和配置MySQL MySQL 5.041

9、的下载网址: 文件名:mysql-essential-5.0.41-win32.msi。 1. 安装和配置MySQL 结束安装并启动MySQL服务器配置向导 选择MySQL配置类型 选择数据库的用途 设置数据库的存储位置 设置MySQL服务器的最大并发连接数 设置MySQL的网络选项 设置MySQL默认字符集:选择【Manual Selected Default Character Set/Cllation】,选择gb2312字符集(简体中文)。 设置MySQL的Windows选项:将MySQL作为Windows服务来安装 设置MySQL服务器的安全性选项,为MySQL的默认账号root设置密

10、码,15180,1.2 PHP开发环境配置,第1章目录,1.2.5 安装和配置MySQL 2. 测试MySQL服务器,16180,1.2 PHP开发环境配置,第1章目录,1.2.5 安装和配置MySQL 3. 通过PHP连接MySQL服务器 将PHP目录下的libmysql.dll文件复制到F:Apache2.2bin目录中。 打开php.ini文件,对以下属性进行设置。 设置MySQL服务器的主机名: mysql.default_host = localhost 设置MySQL服务器的端口号: mysql.default_port = 3306 设置默认用户: mysql.default_u

11、ser = root 设置默认密码: mysql.default_password = password 启用PHP对MySQL的支持模块: extension = php_mysql.dll,17180,1.2 PHP开发环境配置,第1章目录,1.2.5 安装和配置MySQL 3. 通过PHP连接MySQL服务器 通过PHP连接MySQL服务器 ,18180,1.2 PHP开发环境配置,第1章目录,1.2.6 创建PHP MySQL动态站点(在Dreamweaver CS3中),19180,第2章 PHP语言基础,2.1 PHP基本知识,2.2 数据类型,2.3 变量与常量,2.4 运算符与

12、表达式,2.5 流程控制语句,20180,2.1 PHP基本知识,第2章目录,2.1.1 PHP动态网页概述 PHP动态网页就是混合使用PHP和HTML编写的Web页面。当访问者通 过客户端浏览器必出PHP页请求时时,服务端会首先对页面中的PHP代码 进行处理,然后把处理后的结果连同HTML内容一起传送到客户端浏览器。 1. PHP动态网页的内容 HTML标记;CSS样式定义;客户端脚本;PHP定界符;PHP代码。 2. PHP动态网页的访问方式 PHP动态网页过输入“http:/”开头的虚拟路径来访问。 通过虚拟路径访问PHP动态网页时,首先通过Apache服务器将PHP代码 转发给PHP语

13、言引擎进行处理,然后将执行结果连同HTML代码一起发送 到客户端浏览器。 如果正在用Dreamweaver创建PHP动态网页,按下F12键即可通过虚拟路径方式在浏览器中打开当前正在编辑的PHP动态网页,而不必用手动方式在浏览器中输入虚拟路径。,21180,2.1 PHP基本知识,第2章目录,2.1.2 创建PHP代码块 PHP定界符 2.1.3 编写PHP注释 C+风格的单行注释“/” UNIX Shell风格的单行注释“#” C风格的多行注释“/*/”,22180,2.1 PHP基本知识,第2章目录,2.1.4 PHP与HTML混合编码 PHP语句在语法上是完全独立的单元,但也可以使一个语句

14、跨越两个 PHP代码块,并在这两个代码块之间包含HTML代码或其他非PHP代码, 此时PHP将直接输出上一个结束标记与下一个开始标记之间的任何非PHP 代码。当需要输出大量HTML内容时,退出PHP解析模式比使用echo()、 print()或此类函数输出这些内容更为有效。 2.1.5 PHP与JavaScript协同工作 在PHP动态网页中,既可以包含PHP服务器端脚本,也可以包含 JavaScript客户端脚本,而且这两种脚本可以协同工作。 当访问者通过客户端浏览器发出对某个PHP动态网页的请求后,由PHP 在运行中按照HTML的语法格式动态生成页面,并由服务器将整个页面的 数据发送给客户

15、端浏览器,该页面中可能包含通过标记 引入的JavaScript客户端脚本。在浏览器所执行的客户端JavaScript脚本其 实是由PHP服务器端脚本动态生成的。 使用PHP生成或操作客户端脚本,可以增强其有效性。,23180,2.2 数据类型,第2章目录,PHP语言支持的8种原始数据类型 4种标量类型 布尔型(boolean) 整型数(integer) 浮点数(float) 字符串(string) 两种复合类型 数组(array) 对象(object) 两种特殊类型 资源(resource) 空值(NULL),24180,2.2 数据类型,第2章目录,2.2.1 整型数 整型数是集合Z = .

16、, 2, 1, 0, 1, 2, . 中的一个数。整型数包括正整 数、负整数和零。一个整型数可以用十进制,十六进制或八进制符号表示, 前面可以加上可选的符号(或+)。若用八进制符号,则必须在数字前加 上0;若用十六进制符号,则必须在数字前加上0 x。 整型数的字长和平台有关。在32位操作系统中,整型数的取值范围是 2 147 483 648+2 147 483 647。若给定的一个数超出了整型数的范围, 则将被解释为浮点数;当运算结果超出了整型数范围时,也会返回浮点数。 PHP不支持无符号整数。 ,25180,2.2 数据类型,第2章目录,2.2.2 浮点数 浮点数也称为双精度数或实数,其取值

17、范围和精度远远大于整型数。 在32位操作系统中,浮点数的取值范围为1.7E3081.7E+308(即 1.7103081.710308)。浮点数可以用小数形式或科学计数法表示, 在科学计数法中用E或e表示以10为底的幂。 以下给出浮点数的例子。 ,26180,2.2 数据类型,第2章目录,2.2.3 字符串 1. 用单引号定义字符串 表示一个字符串的最简单方法是用单引号()括起这个字符串。若要表示一个 单引号,需要用反斜线()转义,即表示为“”。 2. 用双引号定义字符串 若用双引号()括起字符串,则会使PHP处理更多特殊字符的转义序列。 在用双引号定义的字符串中,变量名会被变量值替代;用花括

18、号把变量名括起来, 便于变量解析。 转义字符:n:换行;r:回车;t:水平制表符;:反斜线:$:美元符号:双引号 3. 用定界符定义字符串 标识符 字符串内容 标识符 与双引号字符串一样,使用定界符定义字符串时,在字符串中包含的变量名运 行时将被变量值替代。此外,在这种字符串中,可以直接包含单引号和双引号,而 不必进行转义。,27180,2.2 数据类型,第2章目录,2.2.4 布尔型 布尔型用于表示真值,其取值可以是true或false。布尔值通常用于控制程序的执 行流程。若要定义指定一个布尔值,可以使用关键字true或false,这两个关键字是 不区分大小写的,因此也可以使用True或Fa

19、lse。例如: 2.2.5 特殊类型 1. 资源 资源是一种特殊变量,保存了对外部资源的一个引用。资源是通过专门的函数 来建立和使用的。由于资源类型变量保存为打开文件、数据库连接、图形画布区域 等的特殊句柄,因此无法将其他类型的值转换为资源。 2. NULL 特殊的NULL值表示一个变量没有值。NULL类型只有一个值,就是大小写敏感 的关键字NULL。 例如: ,28180,2.2 数据类型,第2章目录,2.2.6 数据类型转换 1. 强制类型转换 ( type ) value 2. 整型转换 3. 字符串转换 4. 布尔转换 5. 测试数据类型 使用gettype()函数来测试一个值的数据类

20、型: string gettype ( mixed var ),29180,2.3 变量与常量,第2章目录,2.3.1 定义变量 在PHP语言中规定,变量用一个美元符号($)后面跟变量名来表示, 而且变量名是区分大小写的。变量名与其他标识符一样都遵循相同的命名 规则:一个有效的变量名由字母或下划线开头,后面可以跟上任意数量的 字母、数字或下划线。命名变量通常与对变量赋值一起进行。 检查变量或对象是否属于某种数据类型。 is_int()检查变量是否为整型;is_float()检查变量是否为浮点型;is_numeric()检查变量是否为数值型;is_string()检查变量是否为字符串;is_bo

21、ol()检查变量是否为布尔型;is_array() 检查是否为数组;is_object()检查变量是否为对象。 使用gettype()函数测试一个变量的数据类型。 使用var_dump()函数显示变量的相关信息: void var_dump ( mixed expression , mixed expression , . ) 使用print_r()函数显示关于变量的易于理解的信息: bool print_r ( mixed expression , bool return ),30180,2.3 变量与常量,第2章目录,2.2.2 检查变量是否设置 empty()函数检查一个变量是否为空:

22、bool empty ( mixed var ) 若参数var是非空或非零的值,则empty()返回false。空字符串 (“”)、0、“0”、NULL、false、array()、var $var; 以及没有任何属 性的对象都将被认为是空的,若参数var为空,则empty()返回true。 isset()函数检测变量是否设置: bool isset ( mixed var , mixed var , . ) 若参数var存在则返回true,否则返回false。isset()函数只能用于 变量,因为传递任何其他参数都将造成解析错误。 若使用isset()测试一个被设置成NULL的变量,将返回f

23、alse。同 时要注意,一个NULL字节(0)并不等同于PHP的NULL常数。,31180,2.3 变量与常量,第2章目录,2.3.3 可变变量与变量的引用 1. 可变变量 若一个变量获取一个普通变量的值作为变量名,则该变量就称 为可变变量。在某些情况下,使用可变变量是很方便的,由此可以 动态地设置和使用一个变量的变量名。例如: $a = hello ; $a = world ; echo $a $hello ; 2. 变量的引用 在PHP中,通过的引用可以用两个变量来指向同一个内容。若 要引用一个变量,可在该变量名前面加一个,32180,2.3 变量与常量,第2章目录,2.3.4 使用常量

24、1. 自定义常量 在PHP语言中,可以用define()函数来定义常量。语法如下: bool define ( string name, mixed value , bool case_insensitive ) 其中name指定常量的名称,常量名与其他任何PHP标识符遵循同样的 命名规则,合法的常量名以字母或下划线开始,后面跟着任何字母、数字 或下划线;value指定常量的值;参数bool case_insensitive指定常量名称是 否区分大小写,默认值为true,即区分大小写。 2. 预定义常量 _LINE_返回文件中的当前行号。 _FILE_返回文件的完整路径和文件名。 _FUNCT

25、ION_返回函数名称。 _CLASS_返回类的名称。 _METHOD_返回该方法被定义时的名字(区分大小写)。 PHP_VERSION返回PHP的版本号。 PHP_OS返回执行PHP解析器的操作系统名称。,33180,2.4 运算符与表达式,第2章目录,2.4.1 算术运算符 算术运算符包括加号()、减号()、乘号(*)、除号(/)和取 模运算符(%),分别用于执行加、减、乘、除和求余数运算。其中“”除 了作为减号外,也可以作为一元运算符(负号)使用,即对一个数取相反 数;除号(“/”)总是返回浮点数。当被除数$a为负值时,取模$a % $b的 结果也是负值。 2.4.2 赋值运算符 赋值运算

26、符“=”的作用是把右边表达式的值赋给左边的运算数。赋值运 算表达式的值就是所赋的值。也就是说,“$a = 3”的值是3。这样,一个赋 值运算表达式也可用在其他表达式中,例如:$a = ($b = 3) + 6; 常用复合赋值运算符 +=$op1 += $op2 $op1 = $op1 + $op2 =$op1 = $op2 $op1 = $op1 $op2 *=$op1 *= $op2 $op1 = $op1 * $op2 /=$op1 /= $op2 $op1 = $op1 / $op2 %=$op1 %= $op2 $op1 = $op1 % $op2 .=$op1 .= $op2 $op

27、1 = $op1 . $op2,34180,2.4 运算符与表达式,第2章目录,2.4.3 递增/递减运算符 +(递增) +$op(前加)首先在$op的值上加1,然后返回$op $op+(后加)首先返回$op,然后在$op的值上加1 (递减) $op(前减)首先在$op的值上减1,然后返回$op $op(后减)首先返回$op,然后将$op的值减1 递增/递减运算符对布尔值没有影响。递减NULL值也没有效果, 递增NULL的结果是1。,35180,2.4 运算符与表达式,第2章目录,2.4.4 字符串运算符 连接运算符(“.”),它返回两个操作数连接后的字符串; 连接赋值运算符(“.=”),它将

28、右边操作数附加到左边的操作数之后。 2.4.5 位运算符 位运算符允许对整型数中指定的位进行置位,即对二进制位从低位到 高位对齐后进行运算。执行位运算时会将操作数转换为二进制整数,然后 按位进行相应的运算,运算的结果以十进制整数表示。如果两个运算数都 是字符串,则位运算符将对字符的ASCII值进行操作。 ,38180,2.4 运算符与表达式,第2章目录,2.4.8 逻辑运算符 逻辑运算符用于连接布尔表达式并构成逻辑表达式,逻辑天的 值为布尔值true或false。在PHP语言中,逻辑运算符包括逻辑与、 逻辑或、逻辑异或和逻辑非。 and(逻辑与)$a and $b 若$a和$b均为true,则

29、为true or(逻辑或)$a or $b若$a或$b任一为true,则为true xor(逻辑异或)$a xor $b 若$a或$b任一为true但不同时为true,则为true !(逻辑非)! $a 若$a为true,则为false )将构成一个语句。最基本的表达 式形式是常量和变量,稍微复杂的表达式是函数。在 PHP中,表达式可以说是无处不在的。除了常见的算术 表达式外,还有各种各样的表达式。 一个常用的表达式类型是比较表达式,这些表达式的 值为false或true。PHP支持各种比较运算符,通过这些 运算符构成的比较表达式经常用在条件判断语句中。通 过逻辑运算符连接比较表达式可以构成逻

30、辑表达式,用 来表示更为复杂的条件。,40180,2.4 运算符与表达式,第2章目录,2.4.10 运算符优先级,41180,2.5 流程控制语句,第2章目录,2.5.1 选择语句 1. if语句 if ( expr ) statements if ( expr ) statements else elsestatements if ( expr1 ) statements elseif ( expr2 ) elseifstatements else elsestatements,42180,2.5 流程控制语句,第2章目录,2.5.1 选择语句 2. switch语句 switch ( ex

31、pr ) case expr1: statements1 ; break ; case expr2: statements2 ; break ; . . . default: defaultstatements ; break ; ,43180,2.5 流程控制语句,第2章目录,2.5.2 循环语句 1. while语句 while语句根据指定的条件将一组语句执行零遍或若干遍: while ( expr ) statements 2. do-while语句 do-while语句根据指定的条件将一组语句执行一遍或若干遍: do statements while ( expr ); 3. for语

32、句 for语句的语法如下: for ( expr1; expr2; expr3 ) statements,44180,2.5 流程控制语句,第2章目录,2.5.3 跳转语句 1. break语句 break语句结束当前for、foreach、while、do-while或 switch语句的执行,在该语句可以添加一个可选的数字 参数,以决定跳出几重循环。 2. continue语句 continue语句用在各种循环结构中,用来跳过本次循 环中剩余的代码并在条件求值为真时开始执行下一次循 环。在PHP中,continue也可以用在switch语句中。在 continue语句中,可以使用一个可选的

33、数字参数,以决 定跳过几重循环到循环结尾。,45180,2.5 流程控制语句,第2章目录,2.5.4 包含文件语句 1. include语句 include filepath ; include ( filepath ) ; 2. include_once语句 include_once语句功能与include语句类似,惟一的区别在于:如果该文件中的代 码已经被包含了,则不会再次包含。如同此语句名称暗示的那样,只会包含一次。 require_once()的返回值与include()相同。如果文件已被包含,则返回true。 3. require语句 require filename require

34、 ( filename ) require语句与include语句功能类似,惟一区别在于:如果找不到文件,则 include语句产生一个警告,而require语句则导致一个致命错误。如果想在丢失文件 时停止处理页面,则应该使用require语句。 4. require_once语句 require_once语句用于在脚本执行期间包含并运行指定文件,其功能与require语 句类似,所不同的是,如果该文件中的代码已经被包含了,则不会再次包含。,46180,第3章 数组与函数,3.1 数组,3.2 函数,3.3 面向对象编程初步,47180,3.1 数组,第3章目录,数组的概念: 数组是一种复合数

35、据类型,可用于保存一组类型相同或不相同的数据, 并把一组值映射为键。键也称为数组的索引,它可以是整型数或字符串, 相应的数组分别称为枚举数组或关联数组。键可以有一个或多个,相应的 数组分别称为一组数组或多维数组。 3.1.1 创建数组 1. 用array()创建数组 $array_name = array( key = value , . . . ) ; 其中参数key表示键名,可以是整型数或字符串;value表示与键对应的 值,可以是任何类型的值(包括数组)。array()语言结构返回根据参数建 立的数组。 2. 用方括号语法新建或修改数组 $arr_namekey = value ; 也可

36、以省略键名: $arr_name = value ; 其中key可以是整型数或字符串;value可以是任何值。,48180,3.1 数组,第3章目录,3.1.2 遍历数组 语法1 foreach (array_expr as $value) statements 语法2 foreach (array_expr as $key = $value) statements 第一种语法格式遍历给定的array_expr数组。在每次循环中,当 前元素的值被赋给$value,并且数组内部的指针向前移一步,因此 在下一次循环中将会得到下一元素。第二种语法格式与第一种语法 格式作用相同,但当前元素的键名会在每

37、次循环中赋给变量$key。,49180,3.1 数组,第3章目录,3.1.3 预定义数组,50180,3.1 数组,第3章目录,3.1.3 预定义数组 常用的$_SERVER数组元素,51180,3.1 数组,第3章目录,3.1.4 数组函数 bool array_key_exists ( mixed key, array search ):检查给定的键名或索引是否存在于数组中。key表示键名或索引,search表示待搜索的数组。若给定的key存在于数组中,则返回true。 mixed array_pop ( array 其中function_name是要创建函数的名称。命名函数时,应遵循与变

38、量命名相同 的规则,但函数名不能以美元符号($)开头。函数名不区分大小写。$arg1$argN 是函数的参数,通过这些参数可以向函数传递信息。一个函数可以有多个参数,它 们之间用逗号分隔。函数的参数是可选的。参数可以是各种数据类型,例如整型、 浮点型、字符串以及数组等。 statements表示在函数中执行的一组语句。return语句用于立即结束此函数的执 行并将它的参数作为函数的值返回,也用于终止脚本文件的执行。return()是语言结 构而不是函数,仅在参数包含表达式时才需要用括号将其括起来。,54180,3.2 函数,第3章目录,3.2.2 函数的参数 1. 通过引用传递参数 在默认情况

39、下,函数参数通过值传递,这意味着即使在函数内部改变参数的值, 并不会改变函数外部的值。如果希望允许函数修改它的参数值,则必须通过引用传 递参数。若要函数的一个参数通过引用传递,则可以在函数定义中该参数的前面预 先加上引用符号“ 其中class表示类名。该赋值语句创建类的一个对象实例,并将该对象的一个引 用赋给变量$object。 创建对象后,即可在程序中引用对象的属性,语法如下: $object-property 也可以在程序中调用对象的方法,语法如下: $object-method(),61180,3.3 面向对象编程初步,第2章目录,3.3.2 构造方法 构造方法是类中的一个特殊函数,当使

40、用new操作符创建一个类 的实例时,构造方法将会自动调用。具有构造方法的类会在每次创 建对象时先调用此方法,所以非常适合在使用对象之前做一些初始 化工作。 在PHP 4和PHP 5中,对构造方法的处理有所不同。在PHP 4中, 如果一个函数与类同名时,则这个函数将成为构造方法。如果一个 类没有构造方法,则调用基类的构造方法,如果有的话。在PHP 5 中,可以在一个类中定义一个方法作为构造方法,而且构造方法的 名称统一为_construct。构造方法没有返回值。 为了实现向后兼容性,如果PHP 5在类中找不到_construct()函 数,它就会尝试寻找旧式的构造方法,也就是和类同名的函数。因

41、此将会产生一个兼容性问题:在类中已有一个名为_construct()的 方法,但它却又不是构造方法。,62180,第4章 字符串与正则表达式,4.1 字符串处理,4.2 正则表达式应用,63180,4.1 字符串处理,4.1.1 字符串的输出 print()函数输出一个字符串: int print ( string arg ) sprintf()函数返回一个格式化的字符串: string sprintf ( string format , mixed args , mixed . ) 4.1.2 大小写转换 strtolower()函数把一个字符串中的所有字母都转换为小写形式: string

42、strtolower ( string str ) strtoupper()函数把一个字符串中的所有字母都转换为大写形式: string strtoupper ( string str ) ucfirst()函数把一个字符串中的首字母转换为大写形式: string ucfirst ( string str ) ucword()函数把一个字符串中所有单词的首字母都转换为大写形式: string ucwords ( string str ),第4章目录,64180,4.1 字符串处理,4.1.3 从字符串中删除空格 trim()函数去除字符串开始位置和结束位置的空格或其他字符: string tr

43、im ( string str , string charlist ) ltrim()函数去除字符串左边的空格或其他字符并返回处理后的字符串: string ltrim ( string str , string charlist ) rtrim()函数去除字符串右边的空格或其他字符并返回处理后的字符串: string rtrim ( string str , string charlist ),第4章目录,65180,4.1 字符串处理,4.1.4 HTML文本格式化 nl2br()函数把字符串中的所有换行符(“n”)转换为HTML换行标记并返回经过处理的字符串: string nl2br

44、( string str ) htmlspecialchars()函数把字符串中的一些特殊字符替换为HTML文本实体并返回经过处理的字符串: string htmlspecialchars ( string str , int quote_style , string charset ) htmlentities()函数把字符串中的一些HTML标签转换为HTML实体并返回经过处理的字符串: string htmlentities ( string str , int quote_style , string charset ) strip_tags()函数从字符串中去除所有PHP和HTML标记

45、并返回经过处理的字符串: string strip_tags ( string str , string allowable_tags ),第4章目录,66180,4.1 字符串处理,4.1.5 添加或去除反斜线 addslashes()函数使用反斜线引用字符串: string addslashes ( string str ) stripslashes()函数去除字符串中的反斜线: string stripslashes ( string str ) 4.1.6 字符串的连接与分割 implode()函数将数组元素连接成一个字符串并返回该字符串: string implode ( strin

46、g glue, array pieces ) explode()函数使用一个字符串分割另一个字符串: array explode ( string separator, string str , int limit ) strtok()函数把一个字符串按照另一个字符串的值分割成若干个字符串: string strtok ( string str, string token ),第4章目录,67180,4.1 字符串处理,4.1.7 查找字符串 strpos() 函数从一个字符串中查找另一个字符串首次出现的位置: int strpos ( string haystack, mixed needl

47、e , int offset ) stripos()函数与strpos()功能基本相同,只是不区分大小写: int stripos ( string haystack, mixed needle , int offset ) strrpos() 函数在一个字符串中查找另一个字符串的最后一次出现: int strrpos ( string haystack, mixed needle , int offset ) 4.1.8 替换字符串 str_replace()函数在一个字符串中查找一个子串的所有出现并使用新字符串替换该子串: mixed str_replace ( mixed search,

48、 mixed replace, mixed subject , int / 重定向浏览器 exit;/ 确保重定向后下面的代码不会被执行 5.4.2 使用客户端脚本 在JavaScript客户端脚本代码中,通过把document对象的 location属性或location对象的href属性设置为要转到的目标页面的 URL,都可以实现不同页面之间的跳转。把PHP服务器端脚本与 JavaScript客户端脚本结合起来,可以使用PHP变量动态地设置目 标页面的URL,从而可以根据条件跳转到不同的页面。若要向目 标页面传递参数,则可以把名称-对附加在URL后面。若需要定时 跳转功能,则可以利用win

49、dow对象的setTimeout方法来实现。,第5章目录,87180,5.4 页面跳转,5.4.3 使用HTML标记 在文件头部分添加一个meta标签可以实现当前页面的刷新或 跳转到另一页面: 其中参数n指定当前页面停留的秒数,参数url指定要跳转的页 面,若省略url参数,则设置每经过指定的时间间隔自动刷新当前 页面。在PHP代码中,可以利用变量设置url参数的值,从而可以根 据不同的条件跳转到不同的页面。,第5章目录,88180,5.5 会话管理,5.5.1 会话变量概述 会话变量存储着用户的会话生命周期的信息。当用户第一次打开应用程序中的某一页时,用户会话就此开始。当用户一段时间内不再打

50、开该应用程序中的其他页时,或者用户明确终止该会话时(通常是通过单击“注销”链接),会话即告结束。在会话存在期间,会话特定于单个用户,每个用户都有单独的会话。 会话变量用于存储Web应用程序中每页都能访问的信息。信息可以是多种多样的,例如用户名、首选字体大小,或者是指示用户是否成功登录的标记及访问权限等。会话变量的另一个常见用途是保存连续分数。例如,在网上测验中到目前为止用户答对的题数,或者到目前为止用户从电子商务网站目录中选择的商品。 会话变量还可以提供一种超时形式的安全机制,这种机制在用户账户长时间不活动的情况下,将终止该用户的会话。如果用户忘记从Web站点注销,这种机制还会释放服务器内存和

51、处理资源。 会话变量只有在用户的浏览器配置成接受Cookie后才起作用。当首次初始化会话时,服务器创建一个唯一标识该用户的会话ID号,然后将包含该ID号的Cookie发送到用户的浏览器。,第5章目录,89180,5.5 会话管理,5.5.2 创建会话变量 1. 启动会话 bool session_start ( void ) 2. 用会话变量存储信息 例如: $_SESSIONusername = $_POSTtxtUserName ; 3. 检查会话变量是否存在 bool session_is_registered ( string name ) 4. 从会话变量中检索数据 例如: $use

52、rname = $_SESSIONusername ; 5. 在Dreamweaver中定义会话变量 在PHP源代码中创建一个会话变量并为其指定值。 在【绑定】面板上单击加号按钮 并选择【阶段变量】命令。 在【阶段变量】对话框中,输入会话变量的名称。,第5章目录,90180,5.5 会话管理,5.5.3 注销会话变量 使用session_unregister()函数可以从当前会话中注销一个会话变量: bool session_unregister ( string name ) 使用session_unset()函数可以从当前会话中注销所有会话变量: void session_unset (

53、void ) 使用session_destroy()函数可以清除当前会话的会话ID: bool session_destroy ( void ),第5章目录,91180,5.6 Cookie应用,5.6.1 Cookie概述 Cookie是一小段文本信息,随着用户请求和页面一起在Web服务器与浏览器之间传递。Cookie包含每次用户访问网站时Web应用程序都可以读取的信息。如果在用户请求网站中的页面时应用程序发送给该用户的不仅仅是一个页面,还有一个包含日期和时间的Cookie,用户的浏览器在获得页面的同时还获得了该Cookie,并将它存储在用户硬盘上的某个文件夹中。如果该用户以后再次请求站点中

54、的页面,当该用户输入URL时,浏览器便会在本地硬盘上查找与该URL关联的Cookie。如果该Cookie存在,浏览器便将该Cookie与页面请求一起发送到网站。,第5章目录,92180,5.6 Cookie应用,5.6.2 在PHP中应用Cookie 1. 发送Cookie信息 使用setcookie()函数可以向客户端发送一个Cookie信息: bool setcookie ( string name , string value , int expire , string path , string domain , bool secure ) 2. 读取Cookie信息 当设置Cooki

55、e后,便可以在其他页面通过$_COOKIE或 $HTTP_COOKIE_VARS数组取得其值,其中$_COOKIE形式适用 于PHP 4.1.0或更高版本。而$HTTP_COOKIE_VARS则从PHP 3起 就可以使用。Cookie的值也会被保存到$_REQUEST数组中。 3. 在Dreamweaver中定义Cookie变量 在PHP源代码中,设置并发送Cookie信息。 在【绑定】面板上单击加号按钮 并选择【Cookie变量】。 在【Cookie变量】对话框中输入Cookie变量名称。,第5章目录,93180,第6章 PHP文件编程,6.1 文件操作,6.2 目录操作,6.3 上传文件,

56、94180,6.1 文件操作,6.1.1 检查文件是否存在 函数file_exists()检查一个文件或目录是否存在: bool file_exists ( string filename ) 6.1.2 打开和关闭文件 1. 打开文件 用函数fopen()打开一个文件或URL: resource fopen ( string filename, string mode , bool use_include_path , resource zcontext ) 2. 关闭文件 使用fclose()函数关闭文件: bool fclose ( resource handle ) 6.1.3 写入文

57、件 用fwrite()函数向文件写入数据: int fwrite ( resource handle, string str , int length ),第6章目录,95180,6.1 文件操作,6.1.4 读取文件 1. 读取单个字符 string fgetc ( resource handle ) 2. 逐行读取数据 fgets()函数从文件中读取一行: string fgets ( int handle , int length ) fgetss()函数从文件中读取一行并过滤掉HTML标记: string fgetss ( resource handle , int length ,

58、string allowable_tags ) fgetcsv()函数从文件指针中读入一行并解析CSV字段: array fgetcsv ( int handle , int length , string delimiter , string enclosure ),第6章目录,96180,6.1 文件操作,6.1.4 读取文件 3. 读取指定长度数据 用fread()函数可以从文件读取指定长度的数据: string fread ( int handle, int length ) 4. 读取整个文件 readfile()函数读取并输出一个文件的内容: int readfile ( stri

59、ng filename , bool use_include_path , resource context ) fpassthru()函数输出文件指针处所有的剩余数据: int fpassthru ( resource handle ) file()函数将整个文件读入一个数组中: array file ( string filename , int use_include_path , resource context ) file_get_contents()函数将整个文件读入一个字符串: string file_get_contents ( string filename , bool use_include_path , resource context , int offset , int maxlen ),第6章目录,97180,6.1 文件操作,6.1.5 文件定位 fseek()函数在文件中定位文件指针: int fseek ( resource handle, int offset , int whence ) rewind()函数将文件指针设置到文件开头: bool rewind ( resource handle ) ftell()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论