当前位置: 首页 > PHP > 正文

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
$array=array('value1','value'......)

1
$array[key]='value'

1
$array=array(key1=>value1,key2=>value2......)

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
<?php
    echo "圆周率π等于:".pi();
?>

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
<?php
    $str="PHP";
    echo strlen($str);
?>

常常使用strlen()函数来验证用户输入的用户密码长度是否正确。

9.9、substr()函数

substr()函数用于截取指定字符串中指定长度的字符。

在开发网页时,经常需要对一些超长文本进行部分显示,就可以用substr()函数截取超长文本的部分字符串,剩余的部分用“…”代替。

1
2
3
4
5
<?php
    $text='substr()函数用于截取指定字符串中指定长度的字符。';
    echo strlen($text);
    echo substr($text,0,20)."...";
?>

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
在数组$arr中匹配具有正确格式的电话号码(010-1234****等),并保存到另一个数组中。
<?php
    $preg = '/\d{3,4}-?\d{7,8}/';
    $arr = array('043212345678','0431-7654321','12345678');
    $preg_arr = preg_grep($preg,$arr);
    var_dump($preg_arr);
?>
结果为:array(2) { [0]=> string(12) "043212345678" [1]=> string(12) "0431-7654321" }

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
<?php
//输出用户登录信息
while(list($name,$value)=each($_POST)){
    if($name!="submit"){
      echo "$name=$value<br>";
    }
}
?>

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/ | 欧阳博客

该日志由 欧阳 于2013年08月21日发表在 PHP 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: PHP知识 | 欧阳博客
关键字:

PHP知识:等您坐沙发呢!

发表评论

快捷键:Ctrl+Enter