1、PHP概述PHP学习内容:PHP语言,分三个阶段学习:初级、中级、高级初级学习大概是7天左右,内容有:1) 介绍PHP、它的工作原理、安装2) 基本语法、数据类型、常量和变量3) PHP提交表单的方法、运算符表达式、条件判断语句在PHP中的用法4) PHP中的常用函数(function)、类(class)5) 帮助中常用的内容中级主要是讲Smarty,Smarty是使用PHP写出来的模板PHP模板引擎,程序员改变程序的逻辑内容不会影响到美工的页面设计,美工重新修改页面不会影响到程序的程序逻辑高级主要是讲Mojavi, Mojavi是基于MVC的框架结构。框架将强制把页面与程序分离, Java,
2、ASP.NET 使用Struts。FileZilla FileZilla 2.2.15FileZilla FileZilla 2.2.14b描述:BUGTRAQ ID: 14730FileZilla是一款Windows平台的开放源码FTP/SFTP客户端。php.ini 配置文件中的指令 asp_tags 打开后才可用。PHP了解PHP1. 什么是PHP?PHP(“PHP: Hypertext Preprocessor”,超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML中,尤其适合 web 开发。而 PHP 独特的语法混合了 C、Java、Perl
3、以及 PHP 式的新语法。PHP 能够用在所有的主流操作系统上,包括 Linux、Unix 的各种变种(包括 HP-UX、Solaris 和 OpenBSD)、Microsoft Windows、Mac OS X、RISC OS 等。今天,PHP已经支持了大多数的 web 服务器,包括 Apache、Microsoft Internet Information Server(IIS)、Personal web Server(PWS)、Netscape 以及 iPlant server、Oreilly Website Pro Server、Caudium、Xitami、OmniHTTPd 等。P
4、HP 最强大最显著的特性之一,是它支持很大范围的数据库。目前,PHP 支持如下数据库: Adabas DInterBasePostgreSQLdBaseFrontBaseSQLiteEmpressmSQLSolidFilePro(只读)Direct MS-SQLSybaseHyperwaveMySQLVelocisIBM DB2ODBCUnix dbmInformix IngresOvrimos2. PHP工作原理PHP的所有应用程序都是通过WEB服务器(如IIS或Apache)和PHP引擎程序解释执行完成的,工作过程: 从客户端的浏览器中对Web服务器发送一个请求。 Apache得到对tes
5、t.php的请求,.php文件由PHP预处理器处理。 test.php是包含命令的一个PHP脚本。这些命令之一是打开一个到一个数据库的连接并取出数据。PHP 处理到数据库的连接,并且解释SQL调用从DB中提取数据。 服务器服务器得到从PHP解释器来的连接请求,并且处理这个请求。数据库然后将应答和结果回送到PHP解释器。 Apache回送该结果到客户端的浏览器浏览器,作为对他请求的应答。客户端的浏览器上显示一个包含从一个数据库来的一些信息的网页。 从客户端的浏览器请求该页,请求被发送给web服务器,接着调用一个PHP脚本。PHP脚本由PHP预处理器解释并从数据库中取出数据,然后结果由余下的PHP
6、脚本加工并转化成HTML,做后的HTML被发回用户的浏览器。3. 在windows上安装Apache、PHP、MySQL(1)Apache: 和IIS一样同属于Web服务器,是当今最流行的服务器,支持Linux和Unix,IIS只支持Windows。(2)安装XAMPP: 将 XAMPP 解压到“D:program files”路径下的“D:program filesxampp”文件夹中,然后安装。注: Apache web 服务器在启动时会把目录转到根目录,这将导致 PHP 尝试在根目录下读取 php.ini,如果存在的话。安装结束后打开网页,在地址栏中输入http:/localhost,点
7、击左侧chinese显示版本php5.1,停止服务器,启动所有程序中的Xampp php switch 之后输入4,改成版本php4.4.1,在开启服务器。刷新页面。在C:Program Filesxampphtdocs下新建work文件夹,将新建的文件存在此路径下,访问地址:http:/localhost/work/test.php4. Helle World PHP 测试 ?php echo Hello World0; ? PHP基础语法1. PHP中输出文本?php echo Hello World; echo Hello EveryOne;?echo是用来显示输出的,PHP语句之间使用
8、“;” 分隔,它也是语句结束符。2. PHP标记(1) (2) (3) echo (“这是类似JavaScript及VBScript语法 的PHP语言嵌入范例,指定脚本语言的方式”); (4)注: 此外注意如果将 PHP 嵌入到 XML 或 XHTML 中则需要使用 以保持符合标准。3. PHP注释PHP 支持 C,C+风格的注释。注释有如下三种注释方式: C 风格的注释在碰到第一个 */ 时结束。小心不要嵌套 C 风格的注释,当注释大量代码时,可能犯该错误。 4. PHP常量和变量 常量:合法的常量名以字母(由大写字母组成和C语言一样)或下划线开始,后面跟着任何字母,数字或下划线。常量和变量
9、不同: 常量前面没有美元符号($); 常量只能用 define() 函数定义,而不能通过赋值语句; 常量可以不用理会变量范围的规则而在任何地方定义和访问; 常量一旦定义就不能被重新定义或者取消定义; 常量只能包含标量数据(boolean,integer,float 和 string)。 常量的范围是全局的。不用管作用域就可以在脚本的任何地方访问常量define() 的功能可以让我们自行定义所需要的常量。见下例 变量: 变量用一个美元符号($)后面跟变量名来表示。变量名是区分大小写的。一个有效的变量名由字母或者下划线开头,后面跟上任意数量的字母,数字或下划线。5. PHP数据类型1) 数据类型四
10、种标量类型: boolean(布尔型):表达了真值,可以为 TRUE 或 FALSE。要指定一个布尔值,使用关键字 TRUE 或 FALSE。两个都不区分大小写。 当转换为 boolean 时,以下值被认为是 FALSE: 布尔值 FALSE 整型值 0(零) 浮点型值 0.0(零) 空白字符串和字符串 0 没有成员变量的数组 特殊类型 NULL(包括尚未设定的变量)注意:-1 和其它非零值(不论正负)一样,被认为是 TRUE! integer(整型)integer 为整数型别。在 32 位的操作系统中,它的有效范围是 -2,147,483,648 到 +2,147,483,647 (231+
11、符号位)。要使用 16 进位整数可以在面加 0x。 整型值可以用十进制,十六进制或八进制符号指定,前面可以加上可选的符号(- 或者 +)。 如果用八进制符号,数字前必须加上 0(零),用十六进制符号数字前必须加上 0x。 float(也叫浮点数,双精度数或实数)浮点数为浮点数型别。在 32 位的操作系统中,它的有效范围是 1.7E-308 到 1.7E+308。(自然底数e=2.71828183) string(字符串) 即为字符串变量,无论是单一字符或数千字的字符串都是使用这个变量类型。值得注意的是要指定字符串给字符串变量,要在头尾加上双引号 (例如: 这是字符串)。在要让字符串换行时,可使
12、用溢出字符,也就是反斜线加上指定的符号,若是 x 加上二位数字,如 xFE 即表十六进位字符,详见下表: 符号意义双引号反斜线n换行回车r送出 CRt跳位 (TAB)定义字符串时,只有一种引号被视为定义符,即单引号或双引号。于是,如果一个字符串由双引号开始,那么只有双引号被分析器解析。这样,你就可以在双引号串中包含任何其他字符,甚至单引号。下面的引号串都是合法的:$s = I m a student; $s = I am a “student” ;当PHP遇到与串的开头相对应的引号时,便认为已经到了字符串尾部,于是: Why doesnt this work? 实际上被PHP语法分析器分成三个
13、部分: Why doesnt 包含一个单引号的双引号串 this多余的字符,分析器无法处理 work? 普通字符串 上面的这个例子企图在双引号串中包含双引号,而分析器在遇到第二个双引号时便认为字符串结束了。要达到包含引号的目的, 必须分析器在遇到串内普通引号的时候忽略它的原意,我们在引号的 前面加上一个反斜杠来告诉PHP:这个引号是字符串的一部分,正确的表示方法是这样: Why doesnt that work?字串可以使用字串连接符(.)来连接,如: $first_name = A; $last_name = B; $full_name = $first_name . . $last_nam
14、e;注意:? $aa=5;echo $aa. test;echo $aa test;/在双引号中,变量名称被变量值替代echo $aa test;;?/在单引号中,变量名称或其他的文本都会不经修改而发送给浏览器两种复合类型: array(数组) array 为数组变量,可以是二维、三维或者多维数组,其中的元素也很自由,可以是 string、integer 或者 double,甚至是 array。可以用 array() 语言结构来新建一个 array。它接受一定数量用逗号分隔的 key = value 参数对。$a=array(1=one,2=two,3=three);$MyArray1=arr
15、ay(a,b,c,d);/一维数组$MyArray2=array(地支=array(子,丑,寅,卯),生肖=array(鼠,牛,虎,兔),数字=array(1,2,3,4); /二维数组bar,12=true);echo$arrfoo;/barecho$arr12;/1?结果:bar1结果:b(索引值从0开始)数据类型强制转换: 允许的强制转换有: (int),(integer) - 转换成整型 (bool),(boolean) - 转换成布尔型 (float),(double),(real) - 转换成浮点型 (string) - 转换成字符串 (array) - 转换成数组 (object
16、) - 转换成对象可变变量(variable variable): 这个代码等价于:$name = 张三;变量范围(作用域): 作用域是指在一个脚本中某个变量在哪些地方可以使用或可见。 全局变量(global variable): 输出是3 局部变量(local variable):任何用于函数内部的变量将被限制在局部函数范围内。 什么也不输出静态变量(static variable):在函数退出时, 这个变量始终存在,不被销毁, 但不能被其它函数使用, 当再次进入该函数时, 将保存上次的结果。?php/静态变量的例子functionmyfunc()static$mystr;$mystr.=哈
17、;echo$mystr.n;myfunc();/哈myfunc();/哈哈myfunc();/哈哈哈?PHP运算符、提交表单方法、条件语句使用操作符:操作符是用来对数值和变量进行某种操作运算的符号。学过的两个操作符:赋值操作符(=)和字符串连接操作符(.)。算数操作符:例子名称结果-$a取反$a 的负值。$a + $b加法$a 和 $b 的和。$a - $b减法$a 和 $b 的差。$a * $b乘法$a 和 $b 的积。$a / $b除法$a 除以 $b 的商。$a % $b取余数 $a 除以 $b 的余数。(“/”)总是返回浮点数,即使两个运算数是整数(或由字符串转换成的整数)也是这样。
18、注: 取模 $a % $b 在 $a 为负值时的结果也是负值。 ?php$a=8;$b=2;$c=3;echo$a+$b.n;echo$a-$b.n;echo$a*$b.n;echo$a/$b.n;echo$a%$c.n;? 注意:(*)作为乘法操作符,而不是常规的乘法符号。除法操作符同理。字符串运算符:有两个字符串运算符。第一个是连接运算符(“.”),它返回其左右参数连接后的字符串。第二个是连接赋值运算符(“.=”),它将右边参数附加到左边的参数后。 赋值运算符:基本的赋值运算符是“=”。一开始可能会以为它是“等于”,其实不是的。它实际上意味着把右边表达式的值赋给左边的运算数。 赋值运算表达
19、式的值也就是所赋的值。也就是说,“$a = 3”的值是 3。 括号提高子表达式的优先级复合赋值操作符:增加程序的执行效率。 符号使用方法等价于意义=$a=$b$a=$b将右边的值连到左边+=$a+=$b$a=$a+$b将右边的值加到左边-=$a-=$b$a=$a-$b将右边的值减到左边*=$a*=$b$a=$a*$b将左边的值乘以右边/=$a/=$b$a=$a/$b将左边的值除以右边%=$a%=$b$a=$a%$b将左边的值对右边取余数.=$a.=$b$a=$a.$b将右边的字符串加到左边?php$a=5;$a+=2;/即$a=$a+2;echo$a.n;$b=哇;$b.=哈;/$b=哇哈;$
20、b.=哈;/$b=哇哈哈;echo$bn;?递增递减运算符: 注: 递增递减运算符不影响布尔值。递减 NULL 值也没有效果,但是递增 NULL 的结果是 1。注意字符变量只能递增,不能递减。例子名称效果+$a前加$a 的值加一,然后返回 $a。$a+后加返回 $a,然后将 $a 的值加一。-$a前减$a 的值减一, 然后返回 $a。$a-后减返回 $a,然后将 $a 的值减一。?phpecho*;$a=5;echoa+.$a+.n;echoa.$a.n;echo*;$a=5;echo+a.+$a.n;echoa.$a.n;echo*;$a=5;echoa-.$a-.n;echoa.$a.n;
21、echo*;$a=5;echo-a.-$a.n;echoa.$a.n;?比较运算符: 比较两个值。根据比较结果返回:true或false。 例子名称结果$a = $b等于TRUE,如果 $a 等于 $b。$a != $b不等TRUE,如果 $a 不等于 $b。$a $b不等TRUE,如果 $a 不等于 $b。$a $b大于TRUE,如果 $a 严格 $b。$a = $b大于等于TRUE,如果 $a 大于或者等于 $b。逻辑运算符:例子名称结果$a and $bAnd(逻辑与)TRUE,如果 $a 与 $b 都为 TRUE。$a or $bOr(逻辑或)TRUE,如果 $a 或 $b 任一为 TRUE。$a xor $bXor(逻辑异或)TRUE,如果 $a 或 $b 任一为 TRUE,但不同时是。! $aNot(逻辑非)TRUE,如果 $a 不为 TRUE。$a & $bAnd(逻辑与)TRUE,如果 $a 与 $b 都为 TRUE。$a | $bOr(逻辑或)TRUE,如果 $a 或 $b 任一为 TRUE。“与”和“或”有两种不同形式运算符的原因是它们运算的优先级不同PHP中提交页面的POST和GET方法 在Form里面,可以使用post也可以使用get。post和get方法在使用上至少有两点不同:1、Get方法通过URL请求来传递用户的输入。Post方法通过另外的