PHP知识
< - - 1、搭载运行环境 - - >
要运行PHP,要安装PHP运行环境,运行环境没有问题的情况下,测试如下代码:
1 2 3 4 5 6 7 8 | <?php /* PHP 练习 */ echo "这是第一个PHP程序!"; //第一个PHP程序代码。 echo 'Hello World!'; ?> |
以上代码包含几个知识点:
1、PHP代码是在<?php和?>这两个标记中编写的。
2、注释方法有:单行注释(//);多行注释(/*…*/)。
3、每个PHP语句都要以(;)结尾。
4、echo为PHP的输出语句。
5、最常用的两种定义字符串的方式:分别是单引号(’)、双引号(”)。
1 2 3 | <?php $a='字符串'; ?> |
或
1 2 3 | <?php $a="字符串"; ?> |
两者的不同之处在于,双引号中所包含的变量会自动被替换成实际数值,而单引号中包含的变量则按普通字体串输出。
1 2 3 4 5 6 | <?php $i='只会看到一遍'; echo "$i"; echo "<br/>"; echo '$i'; ?> |
因此,在定义字符串时,如果没有特别的要求,应尽量使用单引号。
< - - 2、判断字符串 - - >
用PHP函数判断输入的数据是否符合下列要求:输入必须为全数字,输入字符串长度不允许超过25,输入不允许为空。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php /*判断字符串*/ function example($num){ if(is_numeric($num) or is_null($num)){ if(strlen($num)<25) echo "输入正确:".$num; else echo "输入不正确!输入需小于25个字符。"; } else echo "输入不正确!输入不能为空且需全为数字。"; } echo example("12345"); //输入值 ?> |
以上代码包含几个知识点:
1、美元符号$是变量的标识符,所有变量都是以$符号开头的,无论是声明变量还是调用变量,都应使用$符号。
1 2 3 | <?php $boo=true; //声明一个boolean布尔型类型变量,赋初值为true ?> |
而且PHP中变量名是区分大小写的。
2、英文的句号“.”,是将两个字符串连接起来,结合成一个新的字符串。
3、function为声明自定义函数时必须使用到的关键字。
创建函数的基本语法格式为:
1 2 3 | function fun_name($str){ fun_body; } |
example(“12345”):是调用函数,调用函数的操作十分简单,只需要引用函数名并赋予正确的参数即可。
4、if…else是条件控制语句,这里还用到了条件控制语句的嵌套。
5、is_numeric()函数是is系列函数(检测数据类型函数)之一,常用is系列函数如下:
is_bool:检查变量是否是布尔类型
is_string:检查变量是否是字符串类型
is_float/is_double:检查变量是否为浮点类型
is_integer/is_int:检查变量是否为整数
is_null:检查变量是否为null
is_array:检查变量是否为数组类型
is_object:检查变量是否是一个对象类型
is_numeric:检查变量是否为数字或由数字组成的字符串
6、or是逻辑运算符,常用逻辑运算符如下:
&&或and:逻辑与
||或or:逻辑或
xor:逻辑异或
!:逻辑非
< - - 3、流程控制语句 - - >
本例练习用循环语句输出一个数组。
1 2 3 4 5 | <?php $arr=array("1"=>"I","2"=>"Love","3"=>"You"); foreach($arr as $key=>$value) echo "$value"." "; ?> |
本例知识点:
1、定义数组的语法格式如下:
1 |
或
1 |
或
1 |
2、foreach循环语句:foreach循环语句是PHP4引进来的,只能用于数组,该语句的语法格式为:
1 2 | foreach(array_expression as $value) statement; |
或
1 2 | foreach(array_expression as $key=>$value) statement; |
foreach循环语句将遍历数组array_expression,每次循环时,将当前数组中的值赋给$value($key和$value),同时,数组指针向后移动直到遍历结束。当使用foreach循环语句时,数组指针自动被重置,所以不需要手动设置指针位置。
< - - 常用函数 - - >
1、pi()函数:圆周率函数。
1 2 3 |
2、is系列函数:
is_bool:检查变量是否是布尔类型
is_string:检查变量是否是字符串类型
is_float/is_double:检查变量是否为浮点类型
is_integer/is_int:检查变量是否为整数
is_null:检查变量是否为null
is_array:检查变量是否为数组类型
is_object:检查变量是否是一个对象类型
is_numeric:检查变量是否为数字或由数字组成的字符串
3、settype(mixed var, string type)类型转换函数:
可以将指定的变量转换成指定的数据类型。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php $num = '3.1415926r*r'; //声明一个字符串变量 echo '使用(integer)操作符转换变量$num类型:'; echo (integer)$num; //使用intger转换类型 echo '<p>'; echo '输出变量$num的值:'.$num; //输出原始变量$num echo '<p>'; echo '使用settype函数转换变量$num类型:'; echo settype($num,'integer'); //使用settype函数转换类型 echo '<p>'; echo '输出变量$num的值:'.$num; //输出原始变量$num ?> 运行结果以下: 使用(integer)操作符转换变量$num类型:3 输出变量$num的值:3.1415926r*r 使用settype函数转换变量$num类型:1 输出变量$num的值:3 |
可以看到,使用integer操作符能直接输出转换后的变量类型,并且原变量不发生任何变化。而使用settype()函数返回的是1,也就是true,原变量被改变了。
4、define(string constant_name, mixed value, case_sensitive=true)定义常量函数:
constant_name:必选参数,常量名称,即标识符
value:必选参数,常量的值
case_sensitive:可选参数,指定是否大小写敏感,设定为true,表示不敏感
5、constant(string const_name)函数:
获取常量的值有两种方法:一种是使用常量名直接获取值;另一种是使用constant()函数,constant()函数和直接使用常量名输出的效果是一样的,但函数可以动态地输出不同的常量,在使用上要灵活方便得多。
参数const_name为要获取常量的名称,也可为存储常量名的变量。
6、defined(string constant_name)函数:
要判断一个变量是否已经定义,可以使用defined()函数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php define ("MESSAGE","能看到一次"); echo MESSAGE."<BR>"; //输出常量MESSAGE echo Message."<BR>"; //输出"Message",表示没有该常量 define ("COUNT","能看到多次",true); echo COUNT."<BR>"; //输出常量COUNT echo Count."<BR>"; //输出常量COUNT,因为设定大小写不敏感 $name = "count"; echo constant ($name)."<BR>"; //输出常量COUNT echo (defined ("MESSAGE"))."<BR>"; //如果定义返回True,使用echo输出显示1 ?> 运行结果如下: 能看到一次 Message 能看到多次 能看到多次 能看到多次 1 |
7、var_dump()函数:
var_dump()函数是系统函数,作用是输出变量的相关信息。
1 2 3 4 5 6 7 8 9 10 | <?PHP $value="100"; echo "\$value = "$value""; echo "<br>\$value==100: "; var_dump($value==100); //结果为:bool(true) ?> 运行结果如下: $value = "100" $value==100: bool(true) |
8、rand()函数:
rand()函数的作用是取得一个随机的整数,该函数的格式为:int rand(int mix, int max)
rand()函数返回mix~max之间的一个随机数。
1 2 3 4 5 6 7 8 9 10 11 | <?php $num = rand(1,31); //使用rand()函数生成一个随机数 if ($num % 2 == 0){ //判断变量$num是否为偶数 echo "\$num = $num"; //如果为偶数,输出表达式和说明文字 echo "<br>$num 是偶数。"; } ?> 运行结果如下: $num = 18 18 是偶数。 |
< - - 9、字符串操作函数 - - >
字符串的操作在PHP编程中占有重要的地位,下面介绍几个常用的字符串操作函数。
9.1、trim()函数
trim()函数用于去除字符串首尾空格和特殊字符,并返回去掉空格和特殊字符后的字符串。
9.2、ltrim()函数
ltrim()函数用于去除字符串左边的空格和特殊字符。
9.3、rtrim()函数
rtrim()函数用于去除字符串右边的空格和特殊字符。
9.4、addslashes(string str)函数
addslashes()自动转义字符串函数,用来为字符串str加入反斜线“\”。
9.5、stripslashes(string str)函数
stripslashes()函数用来将使用addslashes()函数转义后的字符串str返回原样。
知识点:所有数据在插入数据库之前,有必要应用addslashes()函数进行字符串转义,以免特殊字符未经转义而在插入数据库时出现错误。
9.6、addcslashes(string str, string charlist)函数
addcslashes()自动转义字符串函数,用来为指定的字符串charlist前加入反斜线“\”。
9.7、stripcslashes(string str)函数
stripcslashes()函数用来将使用addcslashes()函数转义后的字符串str返回原样。
9.8、strlen(string str)函数
strlen()函数主要用于获取指定字符串str的长度。
1 2 3 4 |
常常使用strlen()函数来验证用户输入的用户密码长度是否正确。
9.9、substr()函数
substr()函数用于截取指定字符串中指定长度的字符。
在开发网页时,经常需要对一些超长文本进行部分显示,就可以用substr()函数截取超长文本的部分字符串,剩余的部分用“…”代替。
1 2 3 4 5 |
9.10、strcmp()函数、strncmp()函数
strcpm()函数用来对两个字符串按字节进行比较。
strncmp()函数用来比较字符串的前n个字符。
在PHP中,对字符串之间进行比较的应用也是非常广泛的。例如,使用strcmp()函数比较在用户登录系统中输入的用户名和密码是否正确。
9.11、strncmp()函数
strncmp()函数用来比较字符串中的前n个字符。
9.12、strstr()函数
strstr()函数用于检索字符串,实现对字符串的查找功能。
可以使用strstr()函数获取上传图片的后缀,限制上传图片的格式。
9.13、substr_count()函数
substr_count()函数用于获取指定字符在字符串中出现的次数。
检索子串出现的次数一般常用于搜索引擎中,针对子串在字符串在出现的次数进行统计,便于用户第一时间掌握子串在字符串中出现的次数。
9.14、str_ireplace()函数
str_ireplace()是替换字符串函数,使用新的字符串(子串)替换原始字符串中被指定要替换的字符串。
字符串替换技术最常用的就是在搜索引擎的关键字处理中,可以使用字符串替换技术将搜索到的字符串中的关键字替换颜色,如查询关键字描红功能,使搜索到的结果更便于用户查看。
1 2 3 4 5 | <?php $text="PHP替换字符串函数"; $str="PHP"; echo str_ireplace($str,"<font color='#FF0000'>".$str."</font>",$text); ?> |
9.15、substr_replace()函数
对指定字符串中的部分字符串进行替换。
9.16、number_format()函数
number_format()函数用来将数字字符串格式化。
9.17、explode()函数
explode()函数是用来分割字符串。
9.18、implode()函数
implode()函数是用来合成字符串的,可以将数组的内容组合成一个新字符串。
9.19、strip_tags()函数
strip_tags()函数是用来剥去HTML、XML以及PHP的标签。
< - - 10、POSIX扩展正则表达式函数 - - >
10.1、ereg()函数和eregi()函数
函数格式如下:bool ereg/eregi(string pattern, string string [, array regs])
函数功能:在字符串string中匹配表达式pattern,如果匹配成功返回true,否则返回false。ereg区分大小写,而eregi不区分大小写。
10.2、ereg_replace()函数和eregi_replace()函数
函数格式如下:string ereg_replace/eregi_replace(string pattern, string replacement, string string)
函数功能:在字符串string中匹配表达式pattern,如果匹配成功,则使用replacement来替换匹配字串。ereg_replace区分大小写,而eregi_replace不区分大小写。
10.3、split()函数和spliti()函数
函数格式如下:array split/spliti(string pattern, string string [, int limit])
函数功能:使用表达式pattern来分割字符串string。split区分大小写,而spliti不区分大小写。
< - - 11、PRCE兼容正则表达式函数 - - >
11.1、preg_grep()函数
函数格式如下:array preg_grep(string pattern, array input)
函数功能:使用数组input中的元素一一匹配表达式pattern,最后返回由所有相匹配的元素所组成的数组。
1 2 3 4 5 6 7 8 |
11.2、preg_match()函数和preg_match_all()函数
函数格式如下:int preg_match/preg_match_all(string pattern, string subject [, array matches])
函数功能:在字符串subject中匹配表达式pattern。函数返回匹配的次数。
11.3、preg_quote()函数
函数格式如下:string preg_quote(string str [, string delimiter])
函数功能:该函数将字符串str中的所有特殊字符进行自动转义。
11.4、preg_replace()函数
函数格式如下:mixed preg_replace(mixed pattern, mixed replacement, mixted subject [, int limit])
函数功能:该函数在字符串subject中匹配表达式pattern,并将匹配项替换成字串replacement。
11.5、preg_replace_callback()函数
函数格式如下:mixed preg_replace_callback(mixed pattern, callback callback, mixted subject [, int limit])
函数功能:preg_replace_callback()函数与preg_replace()函数的功能相同,都用于查找和替换字串,不同的是preg_replace_callback()函数使用一个回调函数(callback)来代替replacement参数。
11.6、preg_split()函数
函数格式如下:array preg_split(string pattern, string subject [, int limit])
函数功能:使用表达式pattern来分割字符串subject。如果有参数limit,那么数组最多有limit个元素。该函数与split()函数的使用方法相同。
12、ksort()函数:用于将数组重新排列
< - - 13、数组操作函数 - - >
13.1、print_r()函数:用于输出数组结构
13.2、foreach()函数:用于遍历数组
语法格式为:
1 2 | foreach(array_expression as $value) statement; |
或
1 2 | foreach(array_expression as $key=>$value) statement; |
foreach循环是PHP4引进来的,只能用于数组。foreach循环语句将遍历数组array_expression,每次循环时,将当前数组中的值赋给$value(或$key和$value),同时,数组指针向后移动直到遍历结束。当使用foreach循环语句时,数组指针自动被重置,所以不需要手动设置指针位置。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php $url = array('欧阳博客'=>'www.ouchaoman.com', '百度'=>'www.baidu.com', '谷歌'=>'www.google.com', ); foreach ( $url as $link ) { echo $link.'<br><br>'; } ?> 结果为: www.ouchaoman.com www.baidu.com www.google.com |
13.3、list()函数:用于遍历数组,把数组中的值赋给一些变量
list()函数是把数组中的值赋给一些变量。与array()函数类似,list()函数不是真正的函数,而是一种语言结构。list()函数仅能用于数字索引且索引值从0开始的数组。
语法格式如下:
void list(mixed…)
参数mixed为被赋值的变量名称。
1 2 3 4 5 6 7 8 |
each()函数用于返回当前当前指针位置的数组值,同时将指针推进到下一个位置。
13.4、explode()函数将字符串转换成数组
explode()函数将字符串依指定的字符串或字符(separator)切开。
函数格式如下:array explode(string separator, string string [, int limit])
13.5、implode()函数将数组转换成一个新字符串
explode()函数将数组的内容组合成一个新字符串。
函数格式如下:string implode(string glue, array pieces)
13.6、count()函数对数组中的元素中的元素个数进行统计
函数格式如下:int count(mixed array [, int mode])
13.7、array_search()函数在数组中搜索给定的值
函数格式如下:mixed array_seach(mixed needle, array haystack [, bool strict])
array_search()函数最常见的应用是购物车,实现对购物车中指定商品数量的修改和删除。
13.8、array_pop()函数:获取数组中的最后一个元素
函数格式如下:mixed array_pop(array array)
array_pop()函数获取并返回数组的最后一个元素,并将数组的长度减1。
13.9、array_push()函数:向数组中添加元素
函数格式如下:int array_push(array array, mixed var [, mixed…])
13.10、array_unique()函数:删除数组中重复的元素
函数格式如下:array array_unique(array array)
13.11、sort()函数:对指定的数组进行升序排序
14、urlencode()函数
在PHP中对查询字符串进行URL编码,可以通过urlencode()函数实现。
函数格式如下:string urlencode(string str)
15、urldecode()函数
通过urldecode()函数对获取后的字符串进行解码。
函数格式如下:string urldecode(string str)
< - - 16、日期操作函数 - - >
16.1、date_default_timezone_set(timezone)函数
更改PHP语言中的时区设置有两种方法:一是修改php.int,二是在使用时间日期函数之前添加如下date_default_timezone_set(timezone)函数,参数timezone为PHP可识别的时区名称。
16.2、mktime()函数:将一个时间转换成UNIX的时间戳
16.3、time()函数:获取当前的UNIX的时间戳
16.4、date()函数:获取当前的日期和时间
16.5、getdate()函数:获取日期指定部分的相关信息
16.6、checkdate()函数:检验日期的有效性
16.7、setlocale()函数:可以改变PHP默认的本地化环境
16.8、strftime()函数:根据本地化环境设置来格式化输出日期和时间
16.9、strtotime()函数:将日期和时间解析为UNIX时间戳
16.10、strto()函数:将一个时间转换成UNIX的时间戳
16.11、microtime()函数:返回当前UNIX时间戳和微秒数
17、ceil()函数:为取整函数
本文固定链接: http://www.ouchaoman.com/2013/08/21/php-knowledge/ | 欧阳博客