Php5新手自学文字教程.docx
《Php5新手自学文字教程.docx》由会员分享,可在线阅读,更多相关《Php5新手自学文字教程.docx(19页珍藏版)》请在冰豆网上搜索。
Php5新手自学文字教程
Php5新手自学文字教程
(忠告:
需要有一定的html的基础,不会的的话请先补补吧,很简单的)
序言:
我接触php5已经近半年了,从开始的一点也不懂到现在的略懂,感觉还是很有成就感的,有时感觉自己的能力挺有限的,很多很简单的东西都要学上很长的时间,但是现在想想其实很多时候自己都是对自己太高估了,所以,这个教程我准备是面向想学习动态网站制作的菜鸟,同时也涉及一部分的网站攻防内容(主要是网站注入的内容),注意,开始的时候可能你会一头雾水,感觉根本看不懂,我给你的忠告是坚持,坚持,再坚持,因为以我的经验,一个月后你可能会第一次开窍,如果你的能力够得话可能几天就可以上手,会写简单的登陆页面和注册页面,然后你就可以对网站的注入有所了解,并可以在浩如烟海的网络中找到一个适合你自己的网站,通过注入的方式(此处可以用一些工具,如啊d注入工具明小子)把他的管理员权限拿到,再通过asp或者php木马(一般分为两步)就可进一步拿到webshell(简单来说就是个后门)。
总之,php这门语言跟c语言有很多相似的地方,如果有c语言的基础,可能学php就简单一些了,毕竟语言都有他通用的地方。
好了,啰嗦了这么多了,开始说说php这门语言本身吧,我尽量会用最少的语言说说php的历史,咱还是进入实例,这样的效果本人感觉比较好。
第一章php简介
PHP,是英文超级文本预处理语言HypertextPreprocessor的缩写。
PHP是一种HTML内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用。
(以上内容摘自网络)
与asp和jsp相比,php最大的特点是它是开源的,所谓的开源就是你可以用他的东西而不用担心他到法院告你,这是玩笑话。
还有据说php的执行效率比起另外的两者来说要快很多,不知道是不是真的,反正我没试过,毕竟我木有asp和jsp的基础,无法测试。
还有很多优点,我不一一列举了,毕竟对于新手来说那些不重要,只有学到一定程度后那些才有用,以上就是我对php的一点简介,可能还是一头雾水,没事,这都不是事,这些只是让新手有一个稍微的了解,更多的后面会有详细的解释。
好了,这是第一章的内容,由于是对php的简介,所以,没有分节,尽量的简化简介,让大家把更多的时间放在实例的操作。
第二章php的安装
第一节php安装包的使用
我推荐新手使用由越南人做的apach+php+mysql的集成包,虽然最近越南跟咱国家闹事,但是说实话这个越南人做的这个包还是不错的,很方便,也很友好,下载地址去网上搜appserv,此种包有几个版本,注意下载windows的版本,我相信看我教程的人估计都是windows的操作系统吧,有用苹果机器的吗?
?
如有的话,本人表示很羡慕,但感觉不理智。
这里多说一句,appserv尽量做到是2.5.x的版本,这个版本的兼容性跟好一些。
下载完成之后,双击安装就行了,安装过程我会另外的写一个带有截图的教程,详情见另外的文件。
安装完成之后就是熟悉的过程了,这个在后面会有介绍,请等待更新。
第二节php代码编写工具提供
录代码的过程是枯燥的,所以我推荐的两款软件都是带有提示的,很方便,大家可以选一个使用。
这两款软件的名字分别是zde和EclipsePHPStudio,这两者都挺好用的,不过还是推荐后者,虽然我用的是前者。
第三章php的基础内容
这一章要进入真正的学习php了,重申一点,在开始之前我说过的是你要有一定的html的基础(主要是html的表单部分),不然的话你很难学下去。
不知道你学会了吗?
?
?
?
第一节Php基础语法
一:
php与传统静态html页面代码的混编
1.
...?
>
2.
php...?
>
3....
4.<%...%>
相信看了这个的人会问,这是什么啊,好的,我这就来回答,这是将你的php代码写进html代码里面后,与原来的html的代码的分界线,一共有四种,不算多,不过最常用的也是兼容性最好的是第二种,所以,处于规范话,我建议用第二种,还有录入php代码时千万别忘了在每个语句后加上分号,那是一句话的结束标志,开始时很多情况下我们的程序错误都出现在这上面,所以必须养成好的习惯,才能减少不必要的检查时间。
二:
Php注释的书写
/*C风格多行注释*/
//C风格单行注释
#Unix风格单行注释
也是三种,推荐前两种,补充一句,良好的注释书写习惯是很好的,可以很好的增加程序的可读性。
三:
处理简单的错误提示:
1、你要把PHP.ini里的display_errors = On才可以显示错误位置
/*新手的话这个可以忽略的,因为那个安装包已经给你全部弄好了,不需要自己来改*/
2、习惯使用echo或者print打印
3、学会使用注释来屏蔽符号来调试//这个很好很强大
//……….
/*…………*/
#..............
4、要懂得看错误信息(英文不熟悉阿拉伯数字总认识吧,实在不行安装有道词典,我就是这么干的。
。
。
。
。
。
)
说完了上面的东西,我再说一下一个很重要的东西,就是echo函数,他的意思跟c语言里边的printf性质差不多,好的让我们来看一个实例,通过这个实例来理解一下echo的作用,这个实例是用于在一个页面输出用户名和密码的,仔细看看吧,很简单的。
实例1:
混编和注释的使用这个实例输出地内容是:
用户名:
yuanzhen
密码:
123456
第二节php的数据类型
php定义变量时候不像c语言那样需要提前说明,而是用时就定义上一个,格式是$name,这一点很方便,很强大,并且不需要说明类型,这样就可以各种类型通吃了,呵呵,不过也会造成混乱,好吧,说道类型了,那我下面就开始讲讲php的变量类型了,不多,很好记的。
四种标量类型:
boolean(布尔型)理解为真假型
integer(整型)就类似整数
float(浮点型,也作“double”)理解为实数
string(字符串)就是可以放字母的数据类型
两种复合类型:
array(数组)
object(对象)
下面对这几种数据类型做一下详细的介绍:
1、布尔型此种类型很特别,他只有假和真的区别,除此之外没有其他的区别,而很多时候他都是被用作条件语句的用途上,也就是所谓的真假条件——while语句尤其是经常地使用。
2、整型:
我想这种类型的就不用我多说了吧,他就是我们平时最常见的那些整数,包括正负,当然我们在用他的时候得考虑他的范围,不过一般情况下不用考虑。
3、浮点型:
这种类型就可以理解为小数型了,没有其他的考虑。
4、字符串:
这种类型比较的重要,尤其是在处理一些大的留言和长篇大论时是必须使用的一种数据类型。
以上是对常见的四种标量类型的简单介绍,下面开始对两种复合类型进行详细的介绍,请做好心理准备了哈,很长的,好了我们开始吧。
首先,我要说明的是我接下来要写的数组的内容,分为三个部分,第一部分是创建与修改数组,第二部分是有关于数组的函数,第三部分是对数组的遍历(所谓遍历就是对数组的所有成员进行访问一遍)
好了,开始吧
一:
创建与修改数组
定义:
PHP中的数组是一个关键字或值的集合
(值可以是任何一种类型,包括另一个数组)
Php中最经典的创建数组的格式如下:
array(key=>value,key=>value……)
说明一下,array是创建数组的一个函数,它是系统内定义的,我们可以直接拿来用,比如
$love=array(“id”=1,”name”=master);
而还有另一种方式是直接输入value的值,不输入关键字(c语言中的数组代号是叫下标,在php中他改名叫关键字了,可以比较着来学习,如果没有c语言的基础也没事,毕竟谁都是从0开始的,加油哈)
$arr=array(3,5,7,);这个语句等价于$arr=array([0]=3,[1]=5,[2]=7);
注意关键字的开始是从0开始的,可要注意了。
说完了普通的创建数组,说点难点的,数组里面包含数组,就是所谓的二维数组,看例子
$arr=array([0]=>array(a,b,c),[1]=>array(A,B,C));
他的结构很简单,如下面的表格的结构
关键字
0
1
2
0
a
b
c
1
A
B
C
不知道大家有没有看懂了,不懂也没事的,这个只是让大家先接触一下啊,等到后面大家自然地就明白了,呵呵,继续下面的内容,数组的使用和修改,根据上面的学习,大家一定很想知道怎样用数组里的内容呢,好的,下面给你介绍一下,
首先,我先定义一个数组$love=array(“id”=1,”name”=master);
如果我们要想用master这个内容,那可以这样书写$love[name];或者是$love[1],这两种方法都可以,$love[‘name’]这个变量的内容就等价于master。
这样我们如果想修改他的内容呢?
?
好办,咱重新赋值(如果这个你也不懂得话,我勉为其难给你解释一下吧,所谓赋值就是重新往里写内容,就像是租房子住,第一次租的人是A,也就是第一次赋值的内容,当我们再次给这个变量赋值B时,也就是A不住了,我们再往外租这套房子,这时B进来了,就这个意思,最后一次赋值的内容就是这个变量的最新内容)。
格式如下:
$love[‘name’]=newname,这样,变量的内容就变成了newname了,很简单,很实用的。
二、数组函数
使用count函数统计数组条数count($arr);
使用is_array函数判断一个变量是否是数组is_array($arr);
这两个函数很简单,我就不详细的解释了,如果有问题的话单独问我吧,接下来是最后一个函数,这个函数是创建数组的函数explode,他的作用很大,但对于新手来说他的作用不太大,不过我还是介绍一下吧,先看一个实例:
$a=”1991-01-25”;
$arr=explode(“-”,$a);
Echo$arr[0];
?
>
这个程序实现的功能是将$a这个变量变成一个数组,三个元素是199101和25,很强大的。
三、对数组的遍历
遍历数组很多种方法,可以使用For循环,while循环,最巧妙的
一种遍历数组foreach。
格式:
foreach($arras$key=>$value){
……
}
还是看实例吧
php
$arr=array(1991,1992,1993);
Echo$arr[0].$arr[1].$arr[2];//将数组的所有内容全部输出
Foreach($arras$key=>$value)
{
Echo$value;
}//整个函数的作用与前者相同,但是比起前者更具有通用性和兼容性
?
>:
最后,我将本章的内容总结如下一个实例,
实例2:
boolean(布尔型)理解为真假型
$bo=TRUE;$bo=FALSE;
integer(整型)
$bo=1;$bo=-12;
float(浮点型,也作“double”)理解为小数型
$bo=1.001;$bo=3.1415926;
string(字符串)
$bo=“这段字符串orENWord”;
array(数组)
$bo=array(1,2,3,4);$bo=array(“A”=>1,“B”=>2);
看看这些内容熟悉了吗?
?
是很简单吧,只要你看下去了就很简单的。
第三节php的常用运算类型
这节内容很简单的,就是我们小学学的加减乘除等等,当然也没有这么简单的,下面就列举了php中的常用运算类型:
1、算术运算
2、赋值运算
3、比较运算
4、逻辑运算
5、递增递减运算
一共五种,每一种都有他自己的东西可以讲,接下来就一个个讲。
第一种是算数运算,这种类型可以就理解为是数学上学的那点东西,就是加减乘除。
第二种是赋值运算,着一种运算在前面的我提到过,大家可以看看前面的那个解释。
第三种好似比较运算,就是比较大小的那种运算,不过在这里我要说明的是比较完成之后返回的值是布尔类型,就是真与假的那种类型,想起来了吗?
?
没想起来就看看前面的内容吧。
运算符号式
1==2//两个等号代表相等,一个等号代表赋值
3!
=2//!
=代表不等于
5<3
"ok"=="ok"//两个字符串也可以比较
1=='1'//这个返回的布尔值是假,因为类型不一样
第四种是逻辑运算,这种类型有点复杂了,一共三种运算符号,分别是或||且&&非!
,这三种各有各的用处,有一个很经典的表格就是介绍的这三种的运算符号的运算规则,
或一真即真,都假才假
且一假即假,都真才真
非真的是假假的是真
第五种是逻辑递减运算符,即++——这两种,这里要说明的只有一点,是++$a与$a++的区别,假如$a=1,那么$++$a的结果是2,而$a++的结果则是1,但是$a的结果都是2,明白了吗?
?
不明白的话还是多看几遍吧。
第四节php三种基本语句
应该说我们在高中时数学就学过了三种基本的语句结构顺序选择和条件,下边就对这三种结构一一说明一下。
首先是顺序结构,这种结构就是一步一步的执行代码,这种结构很简单,但是也是最基础的内容,它是另外两种结构的基础内容。
其次是选择结构,选择结构有两个结构,分别是if语句和swith语句,这两个语句的用法如下:
1、if…else…
if…elseif…
2、switch($i){
case0:
echo"输出0";
break;
case1:
echo"输出1";
break;
case2:
echo"输出2";
break;
}
两种语句之间可以进行转化,所以例如上一个swith的完整语句我们就可以用下面的语句来替换,等效的语句是:
if($i==0){
echo"输出0";
}elseif($i==1){
echo"输出1";
}elseif($i==2){
echo"输出2";
}
仔细对照一下吧,在这里说明一下,swith语句是先找到符合条件的语句,然后紧接着就是执行那个跳进里面的语句,当那个语句执行完之后,接着执行下一个条件下的语句,所以为了避免这种情况,我们要配合break语句的执行,从而为swith做出一个新的出口(非正常的出口),来进行相应的操作。
最后是循环结构,他也有两个语句,一个是for语句,另一个是while语句,这里我想讲的是循环结构式比较难的一块,用好他是比较难的一件事,尤其是在很多看起来很复杂的问题上,往往一个循环能够很好的解决问题。
至于循环的格式,我只想大体写一下,毕竟要记住是挺简单的,但是要在实践中运用才是最难的。
1、do{
……
}while(expr)
2、while(expr){
……
}
3、for(expr1;expr2;expr3){
……}
今天,第三章的内容的内容就到这里了,这张的内容挺多的,可能看起来有点困难,都是些基础性的东西,有些枯燥,而且大部分人可能看完这部分后还感觉是一头雾水,我跟你说很正常的,不要担心太多,继续往下学,再过几天可能会第一次开窍,慢慢期待这一天的到来吧,不过在他到来之前你可能需要继续认真的学习这些内容,好了,说了这些无非是提醒大家,开始是很困难的,坚持下去的人才能成功,记住三个词:
坚持,坚持,还是他妈的坚持。
第四章php函数和自定义函数
有两天没有跟新内容了,病了一天,然后就是外甥女过生日耽误了一天,所以今天得努力了,感觉有些东西一曝十寒,比如这个教程,我感觉放了两天就感觉有点手生,虽然不至于忘记了如何下手了,但是和几天前刚开始写这个教程的时候感觉上很不一样了,很多东西只有坚持下来一个月以上可能才会有一定的效果,这是我高中的老师曾经给我说的,好吧,继续努力吧!
!
给自己一点动力吧,记起前几天的那种激情,战斗刚刚开始。
好了,开始今天的内容。
第一部分,系统内置的函数
这部分是很重要的,但由于php5内置的函数多如牛毛,所以这部分只是简单的介绍几个内置的函数,并不进行深入的介绍,毕竟如果没有实例的操作作为背景,任何的函数学起来都很吃力,尤其是对于新手来说,所以这里我简单的介绍函数,大部分的函数要在后面讲实例的时候再讲。
首先,讲一下函数的基本格式:
函数名字(值1,值2,…);
函数的优越性:
控制程序设计的复杂性
提高软件的可靠性
提高软件的开发效率
提高软件的可维护性
提高程序的重用性
这些东西都不重要,可以做一个了解,对函数的作用有个心理上的认识和重视,好了,开始我们的实例教学吧,先说一下两个函数,分别是date函数和md5加密函数,他们的格式分别是date(’y-m-d’)和md5(”内容”),date函数是一种时间函数,而md5则是一种加密函数,用于机密一些重要的东西,但是现在md5加密的东西已经能够破解了,不过对于新手来说他还是有用的。
开始看实例,
php
$time=date(‘y-m-d’);
Echo$time;
?
>
这个实例输出的内容是当前的时间
php
$a=md5(‘加密后的内容是一些乱码’);
Echo$a;
?
>
这个程序输出地是060733db741ceb80e38304a8463eff23
这些乱码就很好的做到了对内容的保护。
当然在很多情况下我们学习一个函数可以通过php的手册,网上很多,可以自己找。
第二部分自定义函数
自定义函数的格式:
Function函数名字(值1)
{
……
}
注意:
1、函数的命名跟自定义变量一样,只能使用_,A~Z,a~z
2、一个自定义函数中的变量是局部的,函数外不生效
3、使用global全局变量的时候,在函数外才可使用变量(不建议)
开始看实例,
php
Function_pr()
{
Echo“这是一个自定义函数”;
}
_pr();
?
>
这个函数构造了一个很简答的自定义函数,功能是输出这样一段话:
这是一个自定义函数。
很简单,也很强大,可能你暂时没有这种感觉。
下面我说几点经常用于自定义函数的东西。
1、使用return函数返回函数内部值,就是我们如果想让自定义函数自己返回一个值的话可以用这种方法。
实例:
php
Function_pr()
{
Return“这是一个自定义函数”;
}
$a=_pr();
Echo$a;
?
>
这个函数输出地值是:
这是一个自定义函数
和上一个实例的作用一样,这就是return的函数的作用。
2、自定义函数值的接收和选择性接收
php
Function_pr($a1,$a2=1)
{
$a=$a1+$a2;
Return$a;
}
$a=_pr(6,8);
Echo$a;
?
>
这个函数的功能很简单的,不过这个8输入进函数里后,那个$a2=1就不起作用了,这就是接受了,当$a=_pr(6,8);换成$a=_pr(6);时,$a2=1就起作用了,这就叫做选择性接收。
3、function_exists()判断函数是否存在
如果一个自定义函数存在的话,那么他就返回真,否则就返回假,很简单的,没有任何的难度。
4、引用返回值使用&符号
这点内容涉及到全局变量,由于不建议使用全局变量,所以我就省略了这部分的讲解。
第五章mysql的简单介绍和常用的sql语句9
这一章,我会带大家暂时的离开一下php5,而转向mysql的学习,还是老规矩,在开始将mysql之前,我先说明一下他们之间的关系,可能大家还记得那个越南人做的集成包吧,里面集成了apachephpmysql和phpmyadmine四个东西,我们已经介绍了php这个东西,下面就介绍mysql和phpmyadmine,
第一节mysql简介
MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司,现在已经
被Sun公司收购,支持FreeBSD、Linux、MAC、Windows等多种操作系统。
与其他的大型数据库例如Oracle、DB2、SQLServer等相比功能稍弱一些。
再说说mysql的特点吧
1、可以处理拥有上千万条记录的大型数据2、支持常见的SQL语句规范
3、可移植行高,安装简单小巧
4、良好的运行效率,有丰富信息的网络支持
5、调试、管理,优化简单(相对其他大型数据库)
说实话这些大部分也不是啥特点,凑活着看吧(以上均摘自php100上的原话)。
说到这里可能有人会问了,这个数据库跟我们的那个php有什么关系呢?
?
这个其实很简单,php好比一个装配工,而mysql则是装有各种各样的零部件的仓库,当php需要哪些东西时就会从mysql里面提取东西出来。
可能你还是有点晕,不要紧,这部分要等到后面的时候才能够真正的理解,好了,简单的介绍就到这里了,下面说说相关的软件
第二节操作mysql的相关的工具
1、使用工具MYSQL官方的工具访问:
MySQLAdministratortool
2、使用第三方工具访问:
mysqlexec、mysql连接器
3、使用WEB方式访问:
phpMyAdmin(最常见)
这几款工具我不想过多的介绍,因为对于新手来说,用到时在学也不晚,现在仅仅知道有这样的一个工具就行了。
第三节mysql中的常见数据类型
整数型:
TINYINT,SMALLINT,INT,BIGINT
小数型:
FLOAT,DOUBLE,DECIMAL(M,D)
字符型:
CHAR,VARCHAR
日期型:
DATETIME,DATE,TIMESTAMP
备注型:
TINYTEXT,TEXT,LONGTEXT
注意:
蓝色字体是这个类型下面使用最频繁的一种类型,所以如果有不知道用啥类型好的情况可以先用蓝色的哪种类型,大部分情况可以应付的了。
这几种类型我借鉴了一下php100上的东西,对于新手来说这种分类的方式很好很强大,可以很好的让我们对于mysql的认识提到一个新的层次,不过我在学习php时候对于mysql没有太重视,结果导致了我将php的数据类型和mysql的数据类型给混了,所以提醒各位千万别把mysql和php的数据类型给弄混了哈。
第三节常用的sql语句
到了最有用的一节了,这一节我们将介绍php与数据库交互的最有用的语句-sql语句,好了,我们开始这一节吧
首先看一下下面这张表格
这张表格是在数据库名字叫做news下的表名user,下面我们就以这个表来介绍常见的sql语句
1.创建一个数据库命令:
CREATEDATABASEnews;
2.创建一个表:
CREATETABLEuser;
3.创建如上图的这样一个表,并将内容输入进去
CREATE