




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章
PHP入门第页本章概述本章的学习目标主要内容第1章PHP入门第2章PHP语法和函数第3章字符串第4章数组第5章正则表达式第6章PHP与Web页面交互第7章日期时间第8章Cookie和Session第9章数据库编程第10章PHP操作MySQL数据库第11章文件操作第12章图像技术第13章面向对象编程第14章PHP与JavaScript、Ajax第15章ThinkPHP第16章综合实例本章概述第页PHP是一门服务器端程序设计语言,用来开发
Web网站。除了PHP外,还有JSP、ASP、ASP.NET等重要的服务器端程序设计语言。服务器端语言主要运行在服务器端,用于处理来自浏览器端的客户请求;服务器端程序根据请求处理好之后,将处理结果返回到浏览器端,供用户在浏览器端查看或进行下一步交互。本章的学习目标第页掌握Web技术基础知识。了解PHP的基础知识。掌握Windows与Linux操作系统平台上
PHP开发环境的搭建。掌握编写、运行和调试PHP程序的方法。主要内容第页Web技术基础PHP基础知识PHP开发环境的搭建第一个PHP程序调试与错误处理本章小结1.1
Web技术基础第页百度百科对Web的定义是:Web一般指
WWW(World
Wide
Web),即全球广域网,也称
为万维网,是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统,是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超链接将Internet上的信息节点组织成一个互为关联的网状结构。1.1
Web技术基础第页Web的表现形式:超文本、超媒体、超文本传输协议。1.1
Web技术基础第页C/S架构:C/S(Client/Server)架构,即客户端/服务器架构。客户端包含一个或多个在用户计算机
上运行的程序;而服务器有两种,一种是数据库
服务器,客户端通过数据库连接访问数据库服务
器上的数据;另一种是Socket服务器,服务器上
的程序通过Socket与客户端的程序通信。B/S(Browser/Server)架构,即浏览器/服务器架构。Browser指的是Web浏览器,Server是指用
某种语言编写的服务器端程序。1.1
Web技术基础Web工作原理请求HTML静态页面时访问的页面包含PHP程序代码时第页1.1
Web技术基础Web工作原理当访问的页面包含PHP程序代码并且需访问数据库时第页1.1
Web技术基础第页主流的Web开发技术►LAMP:Linux+Apache+MySQL+PHP►J2EE:UNIX+Tomcat+Oracle+JSP►ASP.NET:Windows
Server+IIS+SQLServer+ASP.NET性能比较LAMPJ2EEASP.NET运行速度较快快快开发速度快慢快运行损耗一般较小较大难易程度简单难简单运行平台Linux/UNIX/Windows绝大多数平台Windows平台扩展性好好较差安全性好好较差应用程度较广较广较广建设成本非常低非常高高1.1
Web技术基础第页前端开发语言►HTML(HyperText
Markup
Language,超文本标记语言)是用标记来编写网页的一种语言,因此HTML不是编程语言,而是标记语言。由浏览器执行。HTML文件的扩展名为.html或.htm。►CSS则专注于定义HTML标记的呈现效果及页面布局。►JavaScript是互联网上最流行的脚本语言,被数百万计的网页用来改进设计、验证表单、检测浏览器、创建Cookies以及进行其他更多的应用。主要内容第页Web技术基础PHP基础知识PHP开发环境的搭建第一个PHP程序调试与错误处理本章小结1.2
PHP基础知识第页PHP概述
PHP的优势PHP的应用领域常用的PHP开发工具如何学好PHPPHP学习资源PHP概述第页PHP(Hypertext
Preprocessor,超文本预处理器),是一种服务器端、跨平台、HTML嵌入式的脚本语言,其独特的语法混合了C、Java和Perl语言的特点,是一种被广泛应用的开源的多用途脚本语言,尤其适合Web开发。PHP是B/S体系结构,PHP程序在Web服务器启动后,用户可以不使用客户端软件,使用浏览器即可访问,既保持了图形化的用户界面,又大大减少了应用的维护量。PHP的优势第页跨平台特性易学性免费模板化面向对象与过程内嵌Zend加速引擎PHP的应用领域第页PHP在互联网高速发展的今天,应用范围非常广泛,主要
包括:中小型网站的开发;大型网站的业务逻辑结果展示;
Web办公管理系统;硬件管控软件的GUI;电子商务应用;
Web应用系统开发;企业级应用开发。PHP吸引着越来越多的Web开发人员。PHP可应用于任何地方、任何领域,并且已拥有上百万个用户,拥有良好的生态社区。常用的PHP开发工具第页PHP的开发工具很多,常用的开发工具通常分为三类,一类是简单文本编辑器类型,如EditPlus、Notepad++;一类是专门的PHP开发编辑器,如PHPDesigner
8、PHP
Coder、Zend
Studio、PHP
Editor;还有一类是在通用开发编辑器上通过嵌入PHP插件支持形成的PHP开发编辑器,如NetBeans
IDE、Eclipse
PDT等。如何学好PHP第页明确自己的学习目标和学习方向学会配置PHP的开发环境扎实的基础设计模式实践操练忌浮躁PHP手册案例良好的编程习惯PHP学习资源第页PHP帮助手册的下载和使用网上学习资源图书网站主要内容第页Web技术基础PHP基础知识PHP开发环境的搭建第一个PHP程序调试与错误处理本章小结1.3
PHP开发环境搭建第页PHP主要运行在Windows和Linux操作系统上,对应的环境搭建是WAMP(Windows+Apache+MySQL+PHP)和LAMP(Linux+Apache+MySQL+PHP)。►在Windows上,一般常常安装WAMP、XAMPP、APPSERV等集成套件,其中包含了
Apache、PHP、MySQL软件;►在Linux系统上,一般采用CentOS操作系统,采用yum方式安装Apache、MySQL和PHP组件。主要内容第页Web技术基础PHP基础知识PHP开发环境的搭建第一个PHP程序调试与错误处理本章小结1.4第一个PHP程序<?phpecho
"hello
world";?>第页主要内容第页Web技术基础PHP基础知识PHP开发环境的搭建第一个PHP程序调试与错误处理本章小结1.5调试与错误处理第页使用自带的报错功能引进调试工具调试业务逻辑错误主要内容第页Web技术基础PHP基础知识PHP开发环境搭建第一个PHP程序调试与错误处理本章小结1.6
本章小结第页本章主要从概要上介绍了Web技术和PHP在Web中的位置。Web应用程序是以B/S架构为基础的应用程序,主要以浏览器(Browser)为客户端。网站就是Web应用程序的一种。用户通过浏览器发送请求到服务端(Server),服务端处理完后,再把结果页面HTML发送回客户端。网站开发过程中,客户端需要使用到HTML、CSS、JavaScript语言,而服务端语言一般采用
PHP、JSP、ASP等。而PHP以简单、高效著称。第2章PHP语法和函数第页本章概述本章的学习目标主要内容本章概述第页本章主要介绍PHP的语法风格,标识符、关键字、常量、变量、表达式,流程控制,函数。本章的学习目标第页掌握PHP的语法风格,包括标记与注释。了解PHP的标识符和关键字。掌握PHP中常量与变量的定义与使用。掌握常用的数据类型及其转换方法。掌握运算符和表达式的使用。掌握流程控制语句在程序中的使用。掌握函数的定义与使用。主要内容第页PHP的语法风格标识符与关键字PHP常量PHP变量变量类型的转换PHP运算符与表达式流程控制语句函数本章小结2.1
PHP语法风格第页PHP标记:XML风格、脚本风格、简短风格、
ASP风格。PHP注释:C++风格的单行注释、C风格的多行注释、Shell风格的注释。2.1
PHP语法风格第页PHP标记:XML风格、脚本风格、简短风格、
ASP风格。XML风格的标记是本书使用的标记,也是推荐使用的标记,服务器不能禁用。该风格的标记在XML和XHTML
中都能使用。XML风格的标记格式如下:<?phpecho"这是XML风格的标记";?>2.1
PHP语法风格第页PHP标记:XML风格、脚本风格、简短风格、
ASP风格。脚本风格<script
language="php">echo"这是脚本风格的标记";</script>2.1
PHP语法风格第页PHP标记:XML风格、脚本风格、简短风格、
ASP风格。简短风格<?echo"这是简短风格的标记";?>2.1
PHP语法风格第页PHP标记:XML风格、脚本风格、简短风格、
ASP风格。ASP风格<%echo"这是ASP风格的标记";%>2.1
PHP语法风格第页PHP注释:C++风格的单行注释、C风格的多行注释、Shell风格的注释。2.1
PHP语法风格第页PHP注释:C++风格的单行注释、C风格的多行注释、Shell风格的注释。►(1)C++风格的单行注释:以双斜杠//开始。例如:<?phpecho
"使用C++风格";
//这是C++风格的单行注释?>2.1
PHP语法风格第页PHP注释:C++风格的单行注释、C风格的多行注释、Shell风格的注释。►(2)C风格的多行注释:以标记“/*开始,以*/”标记结束。例如:<?php/*C风格的多行注释*/echo"使用C风格的多行注释";?>2.1
PHP语法风格第页PHP注释:C++风格的单行注释、C风格的多行注释、Shell风格的注释。►(3)Shell风格的注释:以标记#开始。例如:<?phpecho
"Shell风格的注释";
#这是Shell风格的注释?>主要内容第页PHP的语法风格PHP标识符与关键字PHP常量PHP变量变量类型的转换PHP运算符与表达式流程控制语句函数本章小结2.2
PHP标识符与关键字第页PHP标识符关键字PHP标识符第页标识符可以由一个或多个字符组成,必须以字母或下划线开头。此外,标识符只能由字母、数字、下划线字符和从127~255的其他ASCII字符组成。标识符区分大小写,函数例外。因此,变量$recipe不同于变量$Recipe、$rEciPe或$recipE。标识符可以是任意长度。开发人员能通过标识符名准确地描述标识符的用途。标识符名不能与任何PHP预定义关键字相同。变量名可以与函数名相同,但不推荐,这样会降低代码的可读性。关键字关键字关键字关键字关键字关键字AndorxorFILEexceptionLINEarray()asbreakcaseclassconstcontinuedeclaredefaultdiedoechoelseelseifemptyenddeclareendforendforeachendifendswitchendwhileevalexitextendsforforeachfunctionglobalifincludeinclude_onceissetlistnewprintrequirerequire_oncereturnstaticswitchunsetusevarwhileFUNCTIONCLASSMETHODfinalphp_user_filterinterfaceimplementsextendspublicprivateprotectedabstractclonetrycatchthrowthis第页主要内容第页PHP的语法风格PHP标识符与关键字PHP常量PHP变量变量类型的转换PHP运算符与表达式流程控制语句函数本章小结2.3
PHP常量第页常量的定义。
常量值的获取。常量是否存在的判断。预定义常量。常量的定义第页在PHP中使用define()函数来定义常量,该函数的语法格式为:define(string
constant_name,mixedvalue,case_sensitive=true)例如,定义一个常量MY_CONSTANT,代码如下:define("MY_CONSTANT","19");//
MY_CONSTANT常量的值为字符串"19"常量值的获取第页获取常量值有以下两种方法:使用常量名直接获取值;使用constant()函数获取常量值。其中,constant()函数的语法格式如下:►mixed
constant(string
constant_name)常量是否存在的判断第页要判断一个常量是否已经定义,可以使用
defined()函数,其语法格式如下:►bool
defined(string
constant_name)第页预定义常量说明常量名FILE
当前PHP文件名(注意,FILE前后是两个下划线_)LINE
PHP程序行数PHP_VERSION
使用的PHP版本PHP_OS
内建常量,执行PHP解析器的操作系统名称,如Linux、WindowsTRUE
该常量是一个真值(true)FALSE
该常量是一个假值(false)NULL
一个null值E_ERROR
该常量指到最近的错误处E_WARNING
该常量指到最近的警告处E_PARSE
该常量指到解析语法有潜在问题处E_NOTICE
该常量为发生不寻常处的提示但不一定是错误处PHP_SAPI
Web服务器与PHP之间的接口PHP_INT_MAX
最大的整型数DEFAULT_INCLUDE_PATH
PHP默认的包含路径PEAR_INSTALL_DIRPEAR的安装路径PEAR_EXTENSION_DIRPEAR的扩展路径PHP_BINDIRPHP的执行路径M_E自然对数e值M_PI数学上的圆周率的值FUNCTION当前被调用的函数名CLASS当前类名主要内容第页PHP的语法风格PHP标识符与关键字PHP常量PHP变量变量类型的转换PHP运算符与表达式流程控制语句函数本章小结2.4
PHP变量第页变量的声明和使用
PHP的数据类型检测变量的数据类型可变变量变量作用域变量的声明和使用第页在PHP中使用变量之前不需要声明变量,只需要为变量赋值即可。一个变量包括两个方面:变量名和变量值。PHP变量名除了要符合标识符规则外,第一个字符必须是$,$后的字符必须是字母或下划线,其他字符可以是字母、数字或下划线,而且长度没有限制。例如:►$my_first_variable;PHP的数据类型第页在PHP中使用变量之前不需要声明变量,只需要为变量赋值即可。一个变量包括两个方面:变量名和变量值。PHP变量名除了要符合标识符规则外,第一个字符必须是$,$后的字符必须是字母或下划线,其他字符可以是字母、数字或下划线,而且长度没有限制。例如:►$my_first_variable=“abc”;检测变量的数据类型第页gettype()函数可以在任何时候确定一个变量的类型。该函数的语法格式如下:►string
gettype
(mixed
$var)$var为需要判断类型的变量。可变变量第页可变变量是一种独特的变量,它允许动态改变一个变量名称。其工作原理是该变量的名称由另外一个变量的值来确定,实现过程就是在变量的前面多加一个美元符号$。例如:<?php//输出变量$change_name$change_name="trans";
//声明变量$change_name$trans="You
can
see
me!";
//声明变量transecho
$change_name;echo
"<br>";echo
$$change_name;变量作用域第页作用域说明局部变量在函数的内部定义的变量,其作用域是所在的函数全局变量被定义在所有函数之外的变量,其作用域是整个PHP文件,但在用户自定义函数内部是不可用的。如果希望用户自定义函数内部使用全局变量,则需要使用global关键字声明全局变量静态变量能够在函数调用结束后仍保留变量值,当再次回到其作用域时,又可以继续使用原来的值。而一般变量是在函数调用结束后,其存储的数据值即被清楚,所占的内存空间也被释放。使用静态变量时,先要用关键字static来声明变量把关键字static放在要定义的变量之前主要内容第页PHP的语法风格PHP标识符与关键字PHP常量PHP变量变量类型的转换PHP运算符与表达式流程控制语句函数本章小结2.5
变量类型的转换第页PHP语言提供了两种类型转换的方式,一
种是自动类型转换,一种是强制类型转换。►使用settype()函数时,必须把需要改变类型的变量名和修改后的类型名(要用引号)传递给它。►强制类型转换的方式也可以把变量的值从一个类型转换为另一个类型,只要把目标类型名放在变量名之前的一对括号里即可。主要内容第页PHP的语法风格PHP标识符与关键字PHP常量PHP变量变量类型的转换PHP运算符与表达式流程控制语句函数本章小结2.6
PHP运算符与表达式第页运算符类型
运算符优先级运算符类型第页类型说明算术运算符执行通常的算术运算,如加、减等赋值运算符把值赋给变量位运算对整型数中的二进制位进行运算比较运算符比较两个值的大小(返回true或false)错误控制影响错误处理执行运算符把引号中的内容作为shell命令来执行增量/减量运算符变量值递增或递减逻辑运算符使用and、or和not等布尔运算符字符串运算符字符串合并运算符,把两个字符串合并成一个字符串,字符串运算符只有一个数组对数组进行运算运算符优先级第页PHP常用运算符的优先级(从高到低排列)++––(增量/减量)(int)(float)(string)(array)(object)(bool)(强制转换)!
(not)*/%(算术运算)+–.(算术运算)<<=>>=<>(比较运算)==!====!==(比较运算)&
&
(and)||
(or)=+=–=*=/=.=%=(赋值运算)andxoror主要内容第页PHP的语法风格PHP标识符与关键字PHP常量PHP变量变量类型的转换PHP运算符与表达式流程控制语句函数本章小结2.7
流程控制语句第页选择结构:►if语句►else和elseif语句►switch语句循环结构:►while语句►do…while语句►for语句2.7
流程控制语句第页选择结构:►1.用if编写简单的选择语句通过if选择语句,可以设置一个表达式,该表达式的结果为逻辑值,当结果为true时执行代码块,当结果为false直接跳过代码块,执行后续的其他代码块。if语句的结构如下:if(表达式){//执行的代码块}例如:$widgets
=
23;if($widgets==23){
echo"库存中有23件商品";}echo"库存中的商品不是23件";2.7
流程控制语句第页2.用else语句提供备选方案PHP还允许在if结构中增加一条else语句,以扩展选择语句的功能。这样,程序不仅可以执行表达式值为true的一组代码,还可以执行表达式值为false的一组代码。例如:if
(
$widgets
>=
10
)
{echo"库存商品充足";}
else
{echo"库存商品小于10,请及时采购";}2.7
流程控制语句break;case
"close"://关闭文件break;case
"logout"://退出账号break;第页3.用switch语句对表达式进行多次判断►使用switch语句,测试表达式只出现一次,然后是多个代码组,对应于某个与测试表达式相等的值。例如:switch
(
$userAction
)
{case
"open"://打开文件break;case
"save"://保存文件2.7
流程控制语句break;case
"close"://关闭文件break;case
"logout"://退出账号break;第页3.用switch语句对表达式进行多次判断►使用switch语句,测试表达式只出现一次,然后是多个代码组,对应于某个与测试表达式相等的值。例如:switch
(
$userAction
)
{case
"open"://打开文件break;case
"save"://保存文件第页2.7
流程控制语句循环结构►循环语句,即反复运行同一个代码组,直到满足某个判断条件为止。因此,和if选择语句一样,这个判断条件就是一个判断表达式,结果为true或者false。如果表达式的值为true,循环继续运行;如果表达式的值为false,则结束循环,并运行循环代码组后的第一行代码。►常用的循环结构语句包括:while语句、do…while语句、for语句。第页2.7
流程控制语句1.while语句►while语句的结构与if语句的结构相似,语法格式如下:while(表达式){//执行这段代码}//其他代码例如:<?php$widgetsLeft
=
10;while($widgetsLeft>0){
echo"售出1个商品...";$widgetsLeft--;echo"库存中还剩".$widgetsLeft."个商品.<br/>";}echo"商品已脱销!";?>第页2.7
流程控制语句do…while语句►do…while语句和while语句的区别是:while语句先进行判断,再执行花括号中的代码;而do…while语句是先执行花括号中的代码一次,再进行判断。语法格式如下:do{//执行这段代码}while(表达式);//其他代码例如:<?php$widgetsLeft
=
10;do
{echo"售出1个商品...";$widgetsLeft--;echo"库存中还剩".$widgetsLeft."个商品.<br/>";2.7
流程控制语句第页3.for语句►for语句用于预先知道脚本需要运行的次数的情况。语法结构如下:for(初始值;条件;增量){要执行的代码;}例如:<?phpfor
($i=1;
$i<=5;
$i++){echo"数字为".$i.PHP_EOL;}?>2.7
流程控制语句第页4.程序跳转和终止语句►(1)用break语句退出循环,例如:$randomNumber
=
rand(
1,
1000
);for
(
$i=1;
$i
<=
1000;
$i++
)
{if
(
$i
==
$randomNumber
)
{echo"好极了!我猜到这个数了,这个数是:$i<br/>";break;}}►(2)用continue语句跳过本次循环,例如:for
(
$i=1;
$i
<=
10;
$i++
)
{if($i==4)continue;echo"累加和:$i<br/>";}echo"累加结束!";主要内容第页PHP的语法风格PHP标识符与关键字PHP常量PHP变量变量类型的转换PHP运算符与表达式流程控制语句函数本章小结2.8
函数第页创建函数的基本语法格式为:function
fun_name($str1,$str2…$strn)
{fun_body;}在函数间传递参数第页在调用函数时,需要向函数传递参数,被传入的参数成为实参,而函数定义时的参数为形参。
函数间参数传递的方式有按值传递、按引用传递和默认参数3种方式。从函数中返回值第页函数将返回值传递给调用者的方式是使用关键字
return或return()函数。return的作用是将函数的值返回给函数的调用者,即将程序控制权返回到
调用者的作用域。如果在全局作用域内使用
return关键字,那么将终止脚本的执行。函数示例第页【例2-8】定义一个求平方的函数。<?php//声明函数function
fun($num){return
"$num*$num=".$num*$num;}//调用函数echo
fun(10);//输出结果:$num*$num=100?>变量函数第页变量函数,即将函数作为变量来使用。PHP支持变量函数。对函数的引用第页引用不仅可用于普通变量、函数参数,也可作用于函数本身。对函数的引用,就是对函数返回结果的引用。下面的程序首先定义一个函数fun(),在函数名前加&符号,接着,变量$str将引用该函数,最后输出该变量$str,实际上就是$tmp的值。<?phpfunction
&fun($tmp=0){return
$tmp;}$str=&fun("看到了");echo
$str;?>取消引用第页当不再需要引用时,可以取消引用。取消引用使用unset()函数,它只是断开了变量名和变量内容之间的绑定,而不是销毁变量内容。主要内容第页PHP的语法风格PHP标识符与关键字PHP常量PHP变量变量类型的转换PHP运算符与表达式流程控制语句函数本章小结2.9
本章小结第页PHP语法风格。标识符和关键字。常量、变量、变量类型的转换、运算符和表达式。流程控制语句其他与循环相关的语句,包括跳出循环的break语句和跳过当前循环的continue语句。函数及引用。第3章字符串第页本章概述本章的学习目标主要内容本章概述第页字符串就是字符的序列,例如“hello”“howare
you?”“123”和“!@#$%”等都是有效的字符串。HTML页面是由普通文本组成的,URL地址也是字符串形式的。PHP提供了强大的字符串处理功能,其中,提供了将近百个专门用来处理字符串的函数。本章介绍字符串的基本用法,包括字符串的创建、访问、搜索、查找和替换、格式化等。通过本章的学习,读者能够熟练处理字符串。本章的学习目标第页掌握创建和访问字符串的方法。掌握搜索字符串的常用函数。
掌握字符替换的函数。了解格式化字符串的常用函数。
掌握字符大小写转换的常用函数。主要内容第页创建和访问字符串搜索字符串在字符串中进行字符替换格式化字符串字母大小写转换本章小结3.1
创建和访问字符串第页创建字符串在字符串中引用变量自定义分隔符求字符串的长度和单词个数访问字符串中的字符创建字符串第页将字符串赋给变量:创建一个字符串变量的方法是,先声明一个变量,然后将字符串赋值给该变量,例如:$myStr
=
"hello";将表达式的值赋给变量:创建字符串变量时,也可以将表达式的值赋给它,如:$myStr
=
"how
"
.
"are
"
.
"you?";在字符串中引用变量第页$favoriteAnimal
=
"cat";echo
"My
favorite
animals
are
{$favoriteAnimal}s";自定义分隔符第页PHP中提供了两种自定义分隔符的方法:heredoc表示法和nowdoc表示法。heredoc表示法如下:$myStr
=
<<<DELIMITER(在这里插入字符串)
DELIMITER;nowdoc表示法必须将分隔符字符串放在单引号之中,例如:$myStr
=
<<<"DELIMITER"(在这里插入字符串)
DELIMITER;求字符串的长度和单词个数第页求字符串的长度通过strlen()函数实现,语法格式如下:int
strlen
(
string
$string
);统计字符串中的单词个数通过str_word_count()函数实现,其语法格式如下:mixed
str_word_count
(
string
$string
[,
int
$format
=
0
[,string
$charlist
]])访问字符串中的字符第页访问字符串中的单个字符:访问字符串中的某个字符,也就是读取字符串中某个位置上的字符,语法格式如下:$character
=
$string[index]访问字符串中的多个连续字符:如果需要从一个字符串中读取连续的几个字符,即从一个字符串中取子字符串,要用substr()函数,其语法格式如下:string
substr
(string
$string
,
int
$start
[,
int
$length
])主要内容第页创建和访问字符串搜索字符串在字符串中进行字符替换格式化字符串字母大小写转换本章小结3.2
搜索字符串第页实际开发中,经常需要判断两个字符串是否具有包含关系,PHP提供了以下函数:►strstr()函数,返回一个布尔值,告知某个字符串是否包含搜索文本。►strpos()和strrpos()函数,分别返回搜索文本在被搜索字符串中第一次和最后一次出现的位置。►substr_count()函数,返回搜索文本在被搜索字符串中出现的次数。►strpbrk()函数,可以在字符串中搜索字符集中任意一个字符。主要内容第页创建和访问字符串搜索字符串在字符串中进行字符替换格式化字符串字母大小写转换本章小结3.3
在字符串中进行字符替换第页查找和替换是字符串操作中的常用功能。本节将介绍如下3个字符串替换函数:►str_replace():替换目标字符串中出现的全部搜索字符串。例如:$myStr
=
"It
was
the
best
of
times,
it
was
the
worst
of
times.";//以下输出"It
was
the
best
of
bananas,it
was
the
worst
of
bananas."echo
str_replace("times","bananas",$myStr);//以下输出"It
was
the
best
of
bananas,it
was
the
worst
of
bananas."echo
str_replace("times","bananas",$myStr,$num)."<br/>";//以下输出"The
text
was
replaced
2
times."echo
"The
text
was
replaced
$num
times.<br/>";3.3
在字符串中进行字符替换第页查找和替换是字符串操作中的常用功能。本节将介绍如下3个字符串替换函数:►substr_replace():用另一个字符串替换目标字符串中某个特定的部分。例如:$myStr
=
"It
was
the
best
of
times,
it
was
the
worst
of
times.";echo
substr_replace($myStr,"bananas",11)."<br/>";
//输出"It
wasthe
bananas"3.3
在字符串中进行字符替换第页查找和替换是字符串操作中的常用功能。本节将介绍如下3个字符串替换函数:►strtr():用其他字符替换目标字符串中的某些字符。例如:$myStr
=
"Here"s
a
little
string";//输出"Here-s+a+little+string""echo
strtr(
$myStr,
"
"",
"+-"
)
.
"<br/>";主要内容第页创建和访问字符串搜索字符串在字符串中进行字符替换格式化字符串字母大小写转换本章小结3.4
格式化字符串第页通用的格式化函数printf()和sprintf()删除空白符的函数trim()、ltrim()和rtrim()填充字符串函数str_pad()自动换行函数wordwrap()格式化数值函数number_format()主要内容第页创建和访问字符串搜索字符串在字符串中进行字符替换格式化字符串字母大小写转换本章小结3.5
字母大小写转换第页PHP提供了大小写转换的多个方法。要把一个字符串全部转换为小写,可以使用
strtolower(),其语法格式如下:►string
strtolower(
string
$string)如果想要将一个字符串全变成大写,则使用strtoupper()函数,语法格式如下:►string
strtoupper
(
string
$string
)主要内容第页创建和访问字符串搜索字符串在字符串中进行字符替换格式化字符串字母大小写转换本章小结3.10
本章小结第页字符串的创建和访问。strstr(),strpos()和strrpos()。
substr_count()。strpbrk()。
str_replace()。substr_replace()。
strtr()。printf(),sprintf(),trim()、ltrim()、rtrim()、str_、wordwrap()和number_format()。strtolower()、strtoupper()、ucfirst()、lcfirst()、ucwords()。第4章数组第页本章概述本章的学习目标主要内容本章概述第页变量只能存放单个数值。如果需要存储多个值,可以使用数组。数组主要用于存储大量相似的数据。例如,使用数组存储100个客户的信息。有了数组,就不需要用100个独立的变量——如声明$cumstomer1、$cumstomer2等存储这些客户的信息,只需要创建一个$customer数组即可。本章介绍数组的使用,包括一维数组和多维数组的创建、访问、统计、增加、删除、遍历、排序、合并、拆分、转换等内容。本章的学习目标第页掌握一维数组的概念、创建、访问、修改。掌握使用foreach遍历数组的方法。掌握数组的常用操作方法,包括数组元素的输出、数组元素个数的统计等。掌握多维数组的创建、访问和遍历。掌握数组的常用操作,包括数组排序、添加和删除数组元素、合并数组、数组和字符串之间的转换、将数组转换为变量列表等。主要内容第页数组概述数组的创建与访问用foreach()遍历数组多维数组数组的操作本章小结4.1
数组概述第页PHP支持两类数组:索引数组和关联数组。索引数组:这类数组和C、Java语言中的数组一样,每个元素都是通过一个数值型索引进行引用的。通常元素的索引从0开始。例如,第一个元素的索引为0,第二个元素的索引为1,依此类推。关联数组:这类数组的元素就像是一对
Key/Value值,每个元素通过一个键值索引进行引用的。例如,可能用一个数组的元素表示客户的年龄,并把“age”作为它的索引,形如$customer["age"]=10。主要内容第页数组概述数组的创建与访问用foreach()遍历数组多维数组数组的操作本章小结4.2
数组的创建与访问第页创建数组。访问数组的元素。修改元素值。新增数组元素。输出所有数组元素。切割数组。统计数组中元素的个数。逐个访问数组的元素。创建数组第页创建数组通过array()构造函数实现,其语法格式如下。array
array
([
mixed
$...
]
)这个函数需要输入一个值列表,之后它就可以建立一个含有这些值的数组元素,例如:$authors
=
array(
"Landy",
"Tom",
"Michelle",
"Fen"
);访问数组的元素第页创建了数组之后,在使用数组元素时,就需要访问数组。事实上,数组元素的访问方法与字符串中单个字符的访问方法一样。语法格式如下:数组名[索引];例如:►$authors
=
array(
"Landy",
"Tom",
"Michelle","Fen"
);►$myAuthor=$authors[0];
//$myAuthor变量的值为"Landy"修改元素值第页修改元素值的方法和访问数组元素值的方法相同。可以把数组元素看成是单独一个变量,可以随意创建、读取、写入它的值,例如:$authors
=
array(
"Landy",
"Tom",
"Michelle",
"Fen"
);$authors[2]
=
"Melville";新增数组元素第页如何为数组添加新的元素?最简单的方法是新建一个索引值为4的新元素。例如:$authors
=
array(
"Landy",
"Tom",
"Michelle",
"Fen"
);$authors[4]
=
"Orwell";还有一种更简单的给数组增加新元素的方法,只用方括号,不用索引,例如:$authors
=
array(
"Landy",
"Tom",
"Michelle",
"Fen"
);$authors[]
=
"Orwell";切割数组第页array_slice()函数可以从一个数组中读取一组元素,其语法格式如下:array
array_slice
(
array
$array
,
int
$offset
[,
int
$length
=NULL
[,
bool
$preserve_keys
=
false
]]
)统计数组中元素的个数第页实际开发中经常需要统计数组中元素的个数。可以通过count()函数实现,语法格式如下:int
count
($array)逐个访问数组的元素第页通过数组指针逐个访问数组元素:函数说明current()返回指针所指的当前元素的值,指针位置没有变化key()返回指针所指的当前元素的键,指针位置没有变化next()将指针移动到下一个元素位置,并且返回这个元素的值prev()将指针移动到前一个元素位置,并且返回这个元素的值end()
将指针移动到最后一个元素位置,并且返回它的值通过eraesect()h()函将指数针移动逐到第一个个元素访位置,问并且返数回它的组值组元素:它会返回数组的当前元素,然后将这针移动到下一个元素。但是each()返回的不是一个值,而是一个包含4个元素的数组,其中包含了当前元素的键和值。元素索引元素值0当前元素的键“key”当前元素的键1“value”当前元素的值当前元素的值主要内容第页数组概述数组的创建与访问用foreach()遍历数组多维数组数组的操作本章小结4.3 用foreach()遍历数组第页用foreach遍历数组的每个值用foreach遍历数组的键和值用foreach遍历修改数组值用foreach遍历数组的每个值第页foreach语句最简单的应用就是访问数组中每个元素的值,语法格式如下:foreach
(
$array
as
$value
)
{//对$value值进行操作}//其他程序代码用foreach遍历数组的键和值第页使用foreach可以同时访问数组的键和值,语法格式如下:foreach
(
$array
as
$key
=>
$value
)
{//(对数组元素的$key和$value值进行操作}//其他程序代码用foreach遍历修改数组值第页当使用foreach语句时,在循环体内处理的是数组元素的副本。这意味着,改变这个值,并不会改变原来数组中相应元素的值。例如:$authors
=
array(
"Landy",
"Tom",
"Michelle",
"Fen");//下面的foreach语句输出"Landy
Tom
Hardy
Fen";foreach($authors
as
$val){if
(
$val
==
"Michelle"
)
$val
=
"Hardy";echo
$val
.
"
";}主要内容第页数组概述数组的创建与访问用foreach()遍历数组多维数组数组的操作本章小结4.4
多维数组第页创建多维数组:数组中的元素为数组。访问多维数组的元素:$myBooks[1]["title"]多维数组的遍历:使用两层嵌套的foreach循环访问$myBooks数组。主要内容第页数组概述数组的创建与访问用foreach()遍历数组多维数组数组的操作本章小结4.5
数组的操作第页数组排序添加和删除数组元素合并数组数组与字符串之间的转换把数组转换为变量列表数组排序第页sort()和rsort(),用于索引数组的排序。
asort()和arsort(),用于关联数组的排序。ksort()的krsort(),根据关联数组的键而非值对它进行排序。array_multisort(),一个非常有用的函数,它可以同时对多个数组或多维数组进行排序。添加和删除数组元素第页array_unshift():将一个或多个新元素添加到数组的首位置。array_shift():删除数组的第一个元素。
array_push():在数组的末尾位置添加一个或多个新元素。array_pop():删除数组的最后一个元素。
array_splice():删除数组中从某个位置开始的元素,或把新元素插入到数组某个位置。合并数组第页把多个数组合并成一个数组通过
array_merge()函数实现。该函数的语法格式如下:►array
array_merge
(array$array1
[,
array$...
]
)数组与字符串之间的转换第页使用explode()函数将字符串转换成数组使用implode()函数将数组转换成一个字符串把数组转换为变量列表第页list()函数,其功能为把数组的各个元素的值分散到各个变量中。list()函数的语法格式如下:array
list
(
mixed
$var1
[,
mixed
$...
]
)主要内容第页数组概述数组的创建与访问用foreach()遍历数组多维数组数组的操作本章小结4.6
本章小结第页本章首先介绍了数组的基本概念,然后介绍创建数组,访问数组元素,输出数组元素。接着介绍数组指针,可以通过数组指针引用数组的元素。最后讨论数组处理函数,这些函数主要用于排序数组、在不同的位置增删数组元素、合并数组、进行数组和字符串的相互转换等。这些函数如下:排序函数:包括sort()、asort()、ksort()和array_multisort()等函数。添加和删除元素的函数:包括array_unshift()、array_shift()、array_push()、array_pop()和array_splice()等函数。合并数组的函数:通过array_merge()函数可以把多个数组合并成一个数组。进行数组和字符串互相转换的函数:使用explode()和implode()函数可以在数组与字符串之间进行转换。将数组元素变为普通变量的函数:使用list()函数可以把数组的元素存储到各个普通变量中。第5章正则表达式第页本章概述本章的学习目标主要内容本章概述第页正则达式,又称规则表达式,是一种文本模式,包括普通字符(例如,a到z之间的字母)和特殊字符(称为"元字符")。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个模式(规则)的文本。例如,定义一个表示固定电话规则的正则表达式,就可以使用该正则表达式判断用户输入的内容是否是固定电话。本章将介绍正则表达式的基本概念、模式匹配、组成正则表达式的一些常用通配符,以及常用的正则表达式函数等。本章的学习目标第页了解正则表达式的概念。掌握PHP中模式匹配的使用方法。熟悉正则表达式的语法细节。掌握在整个字符串数组中进行搜索。掌握使用正则表达式进行文本替换。主要内容第页什么是正则表达式正则表达式的语法规则PHP中的模式匹配正则表达式的使用用preg_match_all()函数实现多次匹配用preg_grep()函数搜索数组文本替换本章小结5.1
什么是正则表达式第页正则表达式描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。在实际的Web网站开发中,最经常用到正则表达式的是:上传文件类型的判断、电子邮箱的判断、电话号码的判断、文本搜索与替换,等等。主要内容第页什么事正则表达式正则表达式的语法规则PHP中的模式匹配正则表达式的使用用preg_match_all()函数实现多次匹配用preg_grep()函数搜索数组文本替换本章小结5.2
正则表达式的语法规则第页行定位符(^和$)、单词定界符(\b、\B)、字符类([]选择字符(|)、连字符(-)、排除字符([^])、限定符(?*+{n,m})、点号字符(.)、转义字符(\)、反斜线(\括号字符(())、反向引用主要内容第页什么事正则表达式正则表达式的语法规则PHP中的模式匹配正则表达式的使用用preg_match_all()函数实现多次匹配用preg_grep()函数搜索数组文本替换本章小结5.3
PHP中的模式匹配第页在PHP中,最重要的模式匹配函数是
preg_match()。该函数的语法格式如下:►int
preg_match
(
string
$pattern
,
string$subject
[,
array
&$matches
[,
int
$flags
=
0[,
int
$offset
=
0
]]]
)主要内容第页什么事正则表达式正则表达式的语法规则PHP中的模式匹配正则表达式的使用用preg_match_all()函数实现多次匹配用preg_grep()函数搜索数组文本替换本章小结5.4
正则表达式的使用第页匹配字面字符用字符类匹配字符类型多次匹配同一字符贪婪匹配法和非贪婪匹配法用子模式分组模式引用前面的子模式匹配串匹配多个模式主要内容第页什么事正则表达式正则表达式的语法规则PHP中的模式匹配正则表达式的使用用preg_match_all()函数实现多次匹配用preg_grep()函数搜索数组文本替换本章小结5.5
用preg
match
all()函数实第页现多次匹配preg_match_all()函数语法格式如下:►int
preg_match_all
(
string
$pattern
,
string$subject
[,
array
&$matches
[,
int
$flags
=PREG_PATTERN_ORDER
[,
int
$offset
=
0]]]
)正则表达式$pattern;要在其中进行搜索的字符串(或目标串)$subject;一个保存匹配结果的数组$matches;匹配操作的标志$flags;开始搜索的偏移位置$offset主要内容第页什么事正则表达式正则表达式的语法规则PHP中的模式匹配正则表达式的使用用preg_match_all()函数实现多次匹配用preg_grep()函数搜索数组文本替换本章小结5.6
用preg grep()函数搜索数组第页preg_match()和preg_match_all()函数都可以搜索文本中的单个字符串,但如果想搜索整个字符串数组,则要用preg_grep(),其语法格式如下:►array
preg_grep
(string
$pattern
,
array
$input
[,int
$flags
=
0])正则表达式$pattern、字符串数组$input和标志符$flags(可选)。该函数将会返回一个数组,其中保存正则表达式的全部匹配串,并且以这个匹配串在原数组中的索引号为键。主要内容第页什么事正则表达式正则表达式的语法规则PHP中的模式匹配正则表达式的使用用preg_match_all()函数实现多次匹配用preg_grep()函数搜索数组文本替换本章小结5.7文本替换第页str_replace()可以用来替换简单的常量字符串。若要替换比较复杂的文本模式,则需要使用正则表达式字符串替换函数preg_replace()和
preg_replace_callback()来实现。主要内容第页什么事正则表达式正则表达式的语法规则PHP中的模式匹配正则表达式的使用用preg_match_all()函数实现多次匹配用preg_grep()函数搜索数组文本替换本章小结第页5.8本章小结本章向读者介绍了正则表达式,主要内容包括:正则表达式的概念及使用场景;正则表达式中常用的元标记和语法规则;PHP中的模式匹配;正则表达式的使用;使用正则表达式进行多次匹配;使用正则表达式进行字符串替换。还介绍了PHP的众多正则表达式函数,包括:根据正则表达式匹配字符串的preg_match()和
preg_match_all()函数;用转义符表示表达式中的特殊字符的preg_quote()函数;可以匹配字符串数组的preg_grep()函数;用于文本替换的
preg_replace()和preg_replace_callback()函数。第6章PHP与Web页面交互第页本章概述本章的学习目标主要内容本章概述第页PHP与Web页面的交互,解决的是网页如何与服务器端
PHP程序进行交互,即客户端怎么向服务器请求信息,如何将客户端采集的表单数据发送到服务器端,服务器端的
PHP程序又是如何接收客户端浏览器端发送来的表单信息,网页之间如何交互等。数据采集是网站的一项基本功能。比如,用户注册、调查问卷等,填写的就是事先设计好的注册表单、调查问卷表单。填写完成后,提交数据到服务器端,PHP处理程序接收提交过来的数据,并进行后续处理。这就是典型的PHP与Web页面的交互。第页本章概述用户填写表单数据之后,需要通过特定的交互方式,将数据提交给服务器端的PHP处理程序。PHP提供了两种交互方式:GET方式和POST方式。其中,GET方式多用于请求数据,向服务器传递参数时附于URL之后;POST方式
多用于向服务器写入数据,例如,提交表单数据或上传文件,向服务器提交的数据通过函数体传到服务器端。PHP和Web页面交互的过程中,还可以对URL进行编码/解码,对Web服务器端的信息进行采集,以及对上传文件进行预设,等等。HTTP(Hypertext
Transfer
Protocol,HTPP)协议是互联网通信的基础。Web服务器和浏览器是通过HTTP协议进
行通信的。HTTP是一组协议,规定了如何向Web服务器发送请求,以及如何从Web服务器读取数据。第页本章的学习目标了解表单及表单元素。熟悉在Web页面中插入表单的过程。了解通过GET和POST两种方式向服务器端提交表单数据。掌握PHP处理程序如何接收客户端传递过来的参数值。掌握如何在网页中插入PHP脚本。掌握通过PHP获取不同表单元素传递过来的值。掌握针对URL参数进行编码和解码的技术。掌握Web服务器端信息的采集方法。掌握文件上传的方法,以及为了上传文件应对php.ini文件进行的设置。HTTP通信基础。主要内容第页表单将表单存为html文件获取表单数据的两种方法PHP参数传递的常用方法在网页中嵌入PHP脚本在PHP中获取表单数据对URL传递的参数进行编码和解码Web服务器端其他数据采集方法文件上传HTTP的使用本章小结6.1表单第页创建表单表单元素创建表单第页使用<form>标记,并在其中插入相关的表单元素,即可创建一个表单。表单结构如下:<form
name="form_name"
method="method"
action="url"enctype="value"
target="target_win">……</form><form>标记的属性说明name表单的名称method设置表单的提交方式,GET或者POST方式action指向处理该表单页面的URL(相对位置或者绝对位置)enctype设置表单内容的编码方式target设置返回信息的显示方式,一共有4种取值:_blank将返回信息显示在新的窗口中;_parent将返回信息显示在父级窗口中;_self将返回信息显示在当前窗口中;_top将返回信息显示在顶级窗口中表单元素第页表单(form)由表单元素组成。常用的表单元素有以下几种标记:输入域标记<input>、选择域标记<select>和<option>、文字域标记<textarea>等。主要内容第页表单将表单存为html文件获取表单数据的两种方法PHP参数传递的常用方法在网页中嵌入PHP脚本在PHP中获取表单数据对URL传递的参数进行编码和解码Web服务器端其他数据采集方法文件上传HTTP的使用本章小结6.2将表单存为html文件第页在实际项目中,一是由于前后端工作由不同的人承担,因此,一般将表单放到一个单独的html文件中,然后将业务逻辑代码放到单独的php文件中,然后用特定的方法将html表单中的元素值提交到php文件以进行处理,处理完毕后,再将处理结果返回给用户。【例6-2】用户注册页面。主要内容第页表单将表单存为html文件获取表单数据的两种方法PHP参数传递的常用方法在网页中嵌入PHP脚本在PHP中获取表单数据对URL传递的参数进行编码和解码Web服务器端其他数据采集方法文件上传HTTP的使用本章小结6.3获取表单数据的两种方法第页通过POST方式提交表单,PHP通过$_POST获取。<form
name="form1"
method="post"action="register.php"
enctype="multipart/form-data"通过GET方式提交表单,PHP通过$_GET获取。<form
name="form1"
method="get"action="register.php"
enctype="multipart/form-data"主要内容第页表单将表单存为html文件获取表单数据的两种方法PHP参数传递的常用方法在网页中嵌入PHP脚本在PHP中获取表单数据对URL传递的参数进行编码和解码Web服务器端其他数据采集方法文件上传HTTP的使用本章小结6.4
PHP参数传递的常用方法第页当html页面中的表单参数通过POST或GET方式提交到服务端的PHP代码后,PHP代码应该通过合适的方式来获取表单、URL和SESSION变量的值。►通过$_POST[]接收表单数据,例如$_POST["name"]►通过$_GET[]接收表单数据,例如$_GET["name"]主要内容第页表单将表单存为html文件获取表单数据的两种方法PHP参数传递的常用方法在网页中嵌入PHP脚本在PHP中获取表单数据对URL传递的参数进行编码和解码Web服务器端其他数据采集方法文件上传HTTP的使用本章小结6.5在网页中嵌入PHP脚本第页在HTML标记中添加PHP脚本:添加PHP脚本标记<?php…?>,标记之间的所有文本都被解释成PHP,标记之外的任何文本都被当成HTML语言来解析。对表单元素的value属性进行赋值:用户名:<input
type="text"name="user_name"value="<?php
echo
$user_name;?>">主要内容第页表单将表单存为html文件获取表单数据的两种方法PHP参数传递的常用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《荆棘鸟》读书心得
- 制作甲方合同范本
- 《爱的教育》教师读书心得体会
- 买卖客运车辆合同范例
- 借款抵押合同范本书
- 全款付款合同范本
- 叉车买卖服务合同范例
- 代维护合同范本
- 《奇妙的动物世界》教学设计网友来稿 教案教学设计
- 卤制品订货合同范本
- 【人教版二年级下册数学】全册课时巩固提升练习和单元巩固提升练习
- GB/T 25146-2010工业设备化学清洗质量验收规范
- GB/T 2007.1-1987散装矿产品取样、制样通则手工取样方法
- 交流课:资本主义世界市场的形成
- 城市社会学(2015)课件
- 年产2万吨马来酸二乙酯技改建设项目环评报告书
- 中国古代文论教程完整版课件
- 中班美工区角活动教案10篇
- SJG 103-2021 无障碍设计标准-高清现行
- 皇冠假日酒店智能化系统安装工程施工合同范本
- 路面工程重点、关键、和难点工程的施工方案(技术标)
评论
0/150
提交评论