php总复习一、PHP概述1.php是在服务器端执行的嵌入HTML文档的脚本语言2.PHP的标记为?phpPHPcode?3.PHP脚本文件的后缀为.php4.PHP区分大小写5.安装成功后默认的网站文件夹为:apache的安装路径\htdocs6.Apache的配置文件:apache的安装路径\conf\httpd.conf7.PHP的配置文件:PHP的安装路径\php.ini8.单行注释//或者#9.多行注释/**/10.变量定义时用$开头,美元符号后的第一个字符必须是字母或下划线(不能以数字开头)11.PHP语句用分号(;)结束12.字符串用双引号(“”)或单引号(‘‘)界定13.静态网页与的动态网页区别静态网页:用HTML语法构造的,无法与使用者产生互动的网页,被称为静态网页。动态网页:可实现客户与服务器的交互,客户不但可以浏览服务器的内容,还可以输入信息,提交给服务器。动态网页中不仅含有HTML标记,而且含有可以执行的程序代码,动态网页能够根据不同的输入和请求动态生成返回的页面。14.PHP的开发环境:在Window环境下进行开发(WAMP)Windows+Apache+MySQL+PHP在Linux环境下进行开发(LAMP)Linux+Apache+MySQL+PHP15.127.0.0.1和localhost为表示本机服务器16.用户自定义常量方法:define(“常量名”,“常量值”)17.表单的提交:两种方式•post:表单数据嵌入HTTP请求中。•get:表单数据附加到URL中。默认的提交方式为get方式18.使用PHP接收表单数据:三种方式•POST方式功能:获取post方式提交的数据格式:$_POST[“formelement”]•GET方式功能:获取get方式提交的数据格式:$_GET[“formelement”]•REQUEST方式功能:获取任意方式提交的数据格式:$_REQUEST[“formelement”]19.post与get的比较①get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。②使用get方式提交数据时,由于表单数据附加在URL地址之后进行提交,所以安全性不高。③使用method=“post”时,刷新页面时会弹出提示,询问是否重新发送请求;若改为method=get,则不会有该提示。二、运算符1.自增自减运算符的运算时刻2.逻辑与(and)和逻辑或(or)的短路运算3.等于(==)与全等于(===)的区别4.复合赋值运算符的应用5.三元运算符的应用三、函数1.优点:控制程序设计的复杂性•提高软件的可靠性•提高软件的开发效率•提高软件的可维护性•提高程序的重用性2.函数的格式functionfunc_name($arg1,$arg2,…,$argn){语句集;returnvalue;}•参数是一个用逗号隔开的变量或常量的集合。•参数传递机制有两种:值传递和引用传递(&)。•默认值必须是常量表达式。•函数可以通过return语句返回一个值。3.用global声明全局变量,就可以在函数内部访问一个函数外声明的变量了4.用static声明静态变量,则函数中的变量不会因为函数执行终止而死亡了5.递归函数:就是函数可以在其声明的执行叙述之中调用执行自己。特点:•通常在此类型的函数之中会附加一个条件判断叙述,以判断是否需要执行递归调用,并且在特定条件下终止函数的递归调用动作,把目前流程的主控权交回上一层函数执行。因此当某个执行递归调用的函数,没有附加条件判断叙述时可能会造成无限循环的错误情形。•函数递归调用最大的好处在于可以精简程序中繁杂重复调用程序,并且能以这种特性来执行一些较为复杂的运算动作。6.文件引用:通过使用include()和require()、include_once()和require_once()引入已经存在的文件四、数组1.索引数组:用数值来引用数组元素的,数组元素的索引值默认从0开始2.关联数组:用字符串引用的数组元素的3.使用array()函数声明数组4.使用range函数声明数组5.数组的遍历•使用whiledo-whilefor循环来遍历(下标是顺序索引的数组)•foreach语法结构•each()list()while()结合遍历数组五、数据库1.连接mysql服务器:mysql_connect([string$servername[,string$username[,string$password]]])其中:$servername:是mysql的服务器名或本地机器名,默认值是localhost;$username:指定用于连接数据库服务器的用户名,默认值是root;$password:指定相应的密码,默认值是空字符串。例如:$conn=mysql_connect(‘localhost',‘root','123456')ordie(连接失败);2.选择数据库:boolmysql_select_db(string$database_name[,resource$link_identifier])其中:$database_name参数为要选择的数据库名。例如:mysql_select_db('PXSCJ',$conn)ordie(选择数据库失败);3.关闭连接:boolmysql_close([resource$link_identifier])其中:参数$lin_identifier为指定的连接标志符。4.执行SQL语句:mixedmysql_query(string$query[,resource$link_identifier])其中:•$query参数:要执行的SQL语句,语句后面不需要加分号。•$link_identifier参数:指定一个已经打开的连接标志符,如果没有指定则默认为上一个打开的连接。•本函数执行成功后将返回一个资源变量来存储SQL语句的执行结果。5.从返回的结果集中逐行获取记录arraymysql_fetch_row(resource$result)arraymysql_fetch_assoc(resource$result)arraymysql_fetch_array(resource$result[,int$result_type])其中:6.获取结果集中行的数目intmysql_num_rows(resource$result)六、session和cookie1.session:Session用来维护一个用户、一次会话的信息,用于存储局部的、特定于用户的信息,数据保存在服务器端。只在一次特定的网站连接中有效,当关闭浏览器后,Session会自动失效,之前注册的会话变量也不能再使用。2.会话的实现(1).创建session在脚本的起始行添加代码:session_start();(2).设置session变量例如:$_SESSION['email']='maya@126.com';$_SESSION['age']=21;(3).使用$_SESSION数组访问session变量例如:$name=$_SESSION['name'];(4).销毁session数据session_destroy();3.Cookie保存在客户机硬盘上的一个文本文件,它可以存储有关用户的信息,这些信息以键/值对的形式存储在文本文件中。4.cookie的用法(1)创建cookiesetcookie(name,value,expiration,path,domain,secure,httponly);其中:name为cookie的名称,可以使用常量或者变量。value为cookie的值,可以使用常量或者变量expiration--设定cookie存续时间,单位为秒。通常设置为当前时间+一段时间例如:setcookie(name,value,time()+3600);(2)读取cookie读取cookie使用$_COOKIE变量,句法为:$_COOKIE[键名],例如:$user=$_COOKIE['user'];七、正则表达式1.正则表达式是用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的模式分割、匹配、查找及替换操作。由普通字符(原子如a~z)和特殊字符(称为元字符)组成的字符串模式。2.举例'[A-Za-z0-9]':表示所有的大写字母、小写字母及0到9的数字。'^hello':表示以hello开始的字符串。'world$':表示以world结尾的字符串。'.at':表示以除\n外的任意单个字符开头并以at结尾的字符串,如cat、nat等。'^[a-zA-Z]':表示一个以字母开头的字符串。'hi{2}':表示字母h后跟着两个i即hii。'(go)+':表示至少含有一个'go'字符串的字符串,如'gogo'^[0-9]{17}([0-9]|X|Y)$:身份证号^[a-zA-Z0-9_\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$:电子邮箱八、文件与目录1.目录操作•创建目录:mkdir()•删除目录:rmdir()•获取当前工作目录:getcwd()•更改当前工作目录:chdir()•打开目录句柄:opendir()•关闭目录句柄:closedir()•读取目录内容:readdir()•获取指定路径的目录和文件:scandir()2.文件操作:先打开、再读写、最后关闭文件。•打开文件:fopen()•关闭文件:fclose()•写文件:fwrite()、file_put_contents()•读文件:fread()、file()、readfile()、file_get_contents()、fgets()、fgetss()、fgetc()函数3.文件上传•要使用HTML表单产生文件上传变量必须满足3个条件:表单必须使用POST方法提交;form标记enctype属性规定了在提交表单时要使用哪种内容类型,在表单需要二进制数据时,比如文件内容,必须使enctype值为“multipart/form-data”;上传文件的页面可以通过html表单实现,表单中要含有一个文件域控件inputtype=filename=myFile•由html表单生成的文件上传变量,以数组的形式($_FILES)记录了上传文件的详细信息。$_FILES是一个二维数组,上传后的文件信息可以使用以下形式获取:$_FILES['file']['name']:客户端上传的原文件名。其中“file”是HTML表单中文件域控件的名称。$_FILES['file']['type']:上传文件的类型。“image/gif”表示GIF图片;“image/pjpeg”表示JPEG图片;“application/msword”表示word文件;“text/html”表示html格式文件;“audio/mpeg”表示mp3格式的音频文件。$_FILES['file']['tmp_name']:文件被上传后在服务器端储存的临时文件名。$_FILES['file']['size']:已上传文件的大小,单位为字节。$_FILES['file']['error']:错误信息代码。•使用is_uploaded_file()函数检查文件是否通过HTTPPOST上传的,使用PHP的move_uploaded_file()函数将文件移动到其他位置4.文件下载•header(Content-type:text/plain);//设置下载的文件类型•header(Content-Length:.filesize($textname));//设置下载文件的大小•header(Content-Disposition:attachment;filename=$newname);//设置下载文件的文件名•readfile($textname);//读取文件九、图像处理1.在PHP中创建一个图像应该完成如下所