当前位置:首页>软件介绍>PHP编程要点 查询:
     
PHP编程要点

        php简介:  

        php:(Hypertext Preprocessor 超文本预处理器)是一种功能强大的服务器端的脚本语言发展:1994(php/F1)———>1996(php/F2)(可以访问数据库)———>1998(php/F3)———>2000(php/F4)———2004(php5) 所有的语句都是由表达式组成的php的几种写法

        <1> <?php php语句 ?>

        <2> <? php语句 ?>

        <3> <script language="php"> php语句 </script> <4> <% php语句 %>

        zeed:代表php的内核

        iis(internet信息服务):是微软的一个web服务器

        php的两种开发环境:

        LAMP(linux apache mysql php):这四种的都是开源的。<环境一> WAMP(windows apache mysql php) <环境 二>

        tomcat是应用服务器

        apache是web服务器  

        {}:叫符合语句

        php是弱类型的语言,但是它区分大小写

        ------------------

        变量:

        ------------------

        1.命名:变量名由字母、数字和下划线组成。

        1):变量名区分大小写

        2):变量名必须以$开头

        3):不能以数字开头

        4):不能是系统关键字

        1): isset("name"):判断变量是否被初始化,返回值的类型是boolean;

        <?php

        $Hello;

        if(isset($Hello)){

        echo "variable was set!";

        }else {

        echo "variable is not set";

        }

        ?>

        这个程序的结果是variable is not set

        2)define("name","value");定义常量

        <?

        define("num",4);

        echo num;

        ?>

        这个程序的结果是:4;

        3): defined("name")判断常量是否被初始化,返回值类型是boolean;

        <?

        define("num",4);

        if(defined("num")){

        echo "num was set value";

        }else{

        echo "num not is set value";

        }

        ?>

        这个程序的结果是:num was set value;

        常量与变量的区别:常量名的前面不加$.

        boolean类型的返回值:

        如果返回的值是真:输出的则是:true 、TRUE 1 '1' 这几种形式 如果返回值是假:输出的则是:false FALSE 0 null这几种形式

        变量的数据类型:

        1.布尔型 2.整形 3.浮点型 4.字符串行 5.数组 6.对象 7.空值 8.资源

        var_dump(变量名) 返回值是变量的类型,长度和变量的值 gettype(变量名) 返回值是变量的类型

        运算符:

        算术运算符(+ - * /--结果永远是浮点数 %) 逻辑运算符(&&(and) ||(or) !(not) xor(异或)) 比较运算符(关系运算符)(> < == >= <= !=) 赋值运算符(= += -= *= /= %= .= )

        异或运算的规则:相同为零,不同为1;

        字符串的连接运算符是:一个点.

        优先级的排列:算术运算符>比较运算符>逻辑运算符>赋值运算符

        /(除)在php中的应用:

        <?

        $num=102;

        $numtwo=$num/10;

        echo $numtwo;

        ?>

        这个程序的结果是:10.2

        %(求余数、求模)在php中的应用

        <?

        $num=103;

        echo $num%10;

        ?>

        这个程序的结果是:3

        $$在php中的应用:

        <?php

        $hellow="php";

        $i="hellow";

        echo $$i;

        ?>

        这个程序输出的结果是:php

        /这个符号在php中的用法与在c中的用法是不同的:

        在php中得到的结果永远是浮点型 在c中如果符号前后的数都是int型,那么得到的结果也是int型的。只要符号前后的

        数有一个是浮点型,结果就是浮点型。

        === 判断类型和数值是不是都相等。

        == 只是判断数值是不是相等

        <?

        $str='100';

        if($str==100)

        {

        echo "true";

        }else{

        echo "false";

        }

        ?>

        这个程序的结果:输出的是true;

        <?

        $str='100';

        if($str===100)

        {

        echo "true";

        }else{

        echo "false";

        }

        ?>

        <?

        $str=100.0;

        if($str===100)

        {

        echo "true";

        }else{

        echo "false";

        }

        ?>

        这个程序的结果:输出的是false,因为str的类型是double类型的;

        <?

        $str=100.0;

        if($str==100)

        {

        echo "true";

        }else{

        echo "false";

        }

        ?>

        这个程序的结果:输出的是true;  

        /n在php中的使用

        <?

        $str="100.0 100";

        echo $str;

        ?>

        这个程序的结果:输出的是100.0和100不在同一行上。

        $a*=$b+3和$a=($a*$b)+3的结果是相同的

        三元运算符:格式:表达式,表达式1:表达式2; <?

        $a=10;

        $b=9;

        $c=$a>$b?"a>b":"a<b";

        echo $c;

        echo var_dump($c);

        ?>

        这个程序的结果是:a>bstring(3)流程控制语句:

        1.分支:

        格式1:if语句

        if(条件){

        语句集;

        }

        格式2;if(条件){

        语句集1;

        }else{

        语句集2;

        }

        格式3:if(条件1){

        语句集1;

        }else if(条件2){

        语句集2;

        }else{

        语句集3;

        }

        格式3中的else可以去掉,结果正确,速度会变慢的。

        多分支结构;

        switch语句

        格式:

        switch(表达式){

        case 常量:语句;break;

        case 常量2:语句;break;

        ......

        default:语句;break;

        }

        循环:

        while:条件为真时,执行循环体。

        格式:while(条件){

        循环体;

        }

        例题

        <?

        $a=1;

        $sum=0;

        while($a<10){

        $sum+=$a;

        $a++;

        }

        ?>

        这个程序的结果是:55;

        for

        格式:

        for(表达式1;表达式2;表达式3){

        循环体;

        }

        <?

        $mul=1;

        for($i=1;$i<=10;$i++){

        $mul*=$i;

        }

        echo $mul; ?>

        循环的控制语句

        1.break:终止循环

        2.continue:终止本次循环,进入下一次循环

        continue;

        <?

        $mul=1;

        for($i=1;$i<=10;$i++){

        if($i%2==0){

        continue;

        mul*=$i;

        }

        }

        echo $mul;

        ?>

        break;

        <?

        $mul=1;

        for($i=1;$i<=10;$i++){

        if($i==5){

        break;

        mul*=$i;

        }

        }

        echo $mul; ?>

        <?

        $mul=1;

        for($i=1;$i<=10;$i++){

        for($j=1;$j<10;$j++){

        echo $j;

        break;

        }

        if($i==5){

        break;

        mul*=$i;

        }

        }

        echo $mul; ?>

        逻辑运算符的几种写法:

        <?

        echo 3>2&&4>3

        ?>

        <?

        echo 3>2 and 4>3

        ?>

        <?

        echo 3>2 || 4>3

        ?>

        <?

        echo 3>2 or 4>3

        ?>

        位运算:

        <?

        echo 3&2

        ?>

        按位与;见零为零

        按位或:见1为1

        >>向右移位

        <<向左移位

        数组:

        分类;枚举数组、关联数组、和多维数组 枚举数组:下标为整数的数组

        下标是可以自己定义的,例如从5开始,而不是从0开始 关联数组:用字符串作为下标的数组。

        为数组赋值用到的函数是:array

        输出数组用到的函数是:print_r(数组名) 输出数组的格式:

        Array([name] => james[sex] => boy)

        例如:

        $stu=array("james","jack","tom") 数组的下标从0开始的数组

        $stu=array(2=>"james","jack","tom") 数组的下标从2开始的数组

        <?

        $stu=array("james","jack","tom")

        print_r($stu);

        ?>

        关联数组的赋值

        $stu=array("name"=>"james","sex"=>"boy")

        数组的名称加下标来引用数组;

        <?

        $stu=array("name"=>"james","sex"=>"boy");

        echo $stu["name"];

        echo "<p>".$stu["sex"]; ?>

        删除数组元素:unset();

        1.删除整个数组:unset($arr) 2.删除单个数组元素

        按照数组的字符下标删除数组

        <?

        $stu=array("name"=>"james","sex"=>"boy");

        print_r($stu);

        unset($stu["name"]); ?>

        <br>

        <?

        print_r($stu);

        ?>

        按下标值删除数组的元素

        <?

        $stu=array("james","jack","tom");

        print_r($stu);

        unset($stu[1]);

        ?>

        <br>

        <?

        print_r($stu);

        ?>

        便利整个数组用到的方法是:foreach();

        1.输出数组中的所有的值;

        foreach(数组名 as $value)

        <?

        $stu=array("james","jack","tom");

        foreach($stu as $value){

        echo $value."<br>";

        }

        ?>

        2.输出元素的下标和值;

        foreach(数组名 as $k=>$value){}

        <?

        $stu=array("james","jack","tom");

        foreach($stu as $k=>$value){

        echo "$stu[$k]=$value."<br>";

        }

        ?>

        each():返回数组中的键值对

        键有1,0,value,key四种形式,1和value对应的是数组的元素的值,0和key对应的是数组的元素的下标

        例题1:

        <?

        $stu=array("james","jack","tom");

        print_r(each($stu));

        ?>

        这个程序的结果是:Array([1] => james[value] => james[0] => 0[key] => 0)

        例题2

        <?

        $stu=array("james","jack","tom");

        $arr=each($stu);

        echo '<br>value对应的值是:'.$arr["value"];

        echo '<br>key对应的值是:'.$arr["key"];

        echo '<br>1对应的值是:'.$arr["1"];

        echo '<br>0对应的值是:'.$arr["0"];

        ?>

        这个程序的结果是:

        value对应的值是:james

        key对应的值是:0

        1对应的值是:james

        0对应的值是:0

        例题3

        <?

        $stu=array("james","jack","tom");

        for($i=1;$i<=3;$i++){

        $arr=each($stu);

        echo "<pr>";

        print_r($arr);

        }

        ?>

        这个程序的结果是:

        Array ( [1] => james [value] => james [0] => 0 [key] => 0 )

        Array ( [1] => jack [value] => jack [0] => 1 [key] => 1 )

        Array ( [1] => tom [value] => tom [0] => 2 [key] => 2 )

        list的用法;

        list函数仅用于数组下标从0开始的数组。

        <?

        $info=array('coffe','bprown','caffeine');

        list($drink,$color,$power)=$info;

        echo "$drink is $color and $power makes it special. ";

        list($drink, ,$power)=$info;

        echo "$drink has $power. ";

        list(,, $power)=$info;

        echo "I need $power!"

        ?>

        next()将数组的指针移到下一个元素上

        prev()将数组的指针移到上一个元素上

        end()将数组的指针移到最后一个元素

        current();数组当前光标所指的元素

        range()自动生成一个包含指定范围的数组,有两个参数。

        <?

        $arr=range(5,12);

        print_r($arr);

        ?>

        这个程序的输出结果是:

        Array([0] => 5[1] => 6[2] => 7[3] => 8[4] => 9[5] => 10[6] => 11[7] => 12)

        <?

        $arr=range(1,100,10);

        print_r($arr);

        ?>

        这个程序的结果是:

        Array([0] => 1[1] => 11[2] => 2[3] => 31[4] => 41[5] => 51[6] => 61[7] =>

        71[8] => 81[9] => 91)

        <?

        $arr=range('a','c');

        print_r($arr);

        ?>

        这个程序的输出结果是:

        Array([0] => a[1] => b[2] => c)

        count()统计数组中的元素的个数

        例题<?

        $info=array('coffe','bprown','coffe');

        echo (count($info));

        ?>

        这个程序的输出结果是:3

        array_count_values()统计数组中相同元素的个数; 返回值是一个数组 例题

        <?

        $info=array('coffe','bprown','coffe');

        print_r(array_count_values($info)); ?>

        这个程序的输出结果是:

        Array([coffe] => 2 [bprown] => 1)

        多维数组:

        定义:$arr=array(array("James","boy"),array("Jack","boy"),array("Tom"))

        array_keys()把数组的下标值以数组的格式返回

        array_values()把数组中的元素的值以数组的格式返回

        array echo list print都不是函数,是一个结构,利用一个结构实现一个功能。

        输出一个变量的时候可以写成<?=$a;?>这个格式跟<?echo $a;?>具有相同的功能利用echo和print进行输出操作是可以加上括号,也可以不加括号函数:

        定义:独立完成特定功能的代码块。

        函数的分类:

        1.内置函数:系统定义的函数

        2.自定义函数:用户自己定义的函数。

        print<<<start

        代码

        start;

        例题:

        <?php

        print<<<start

        hello php world!

        class 0708javaA;

        start

        ?>

        输出的内容是:hello php world! class 0708javaA

        注意:1.start可以被替换成任意字母,只要前后匹配就行, 2.print<<<start 和start 一定要顶格写。

        include():包含一个文件

        例题:include("a.php");

        include包含文件中的return语句的使用 one.php

        <?

        $b=include("a.php");

        if($b=="ok")

        {

        echo "file is ok"; }

        ?>

        a.php文件

        <?return “ok”?>

        这个程序的输出结果是:file is ok

        include_once("b.php"); include(a.php);

        如果b.php文件中包含了a.php文件,include(a.php)这一句将不再执行。

        require():包含一个文件

        例题:require("a.php");

        <?

        $b=require("a.php");

        if($b=="ok")

        {

        echo "file is ok"; }

        ?>

        a.php文件

        <?return “ok”?>

        这个程序的输出结果是:file is ok

        require_once("b.php"); require(a.php);

        如果b.php文件中包含了a.php文件,require (a.php)这一句将不再执行。

        Require和include的区别:

        1. require语句必须放在程序的开头,include语句可以放在程序的任意位置

        2. require包含的文件出现错误是,整个程序停止运行,include包含的文件出现错误时,回跳过这个错误,继续执行下面的程序。

        声明一个函数:

        function fun_name( $args){

        函数体;

        };

        无参数的函数

        例题:

        <?

        function noargs()

        {

        echo "这是一个无参数的函数";

        }

        noargs();

        ?>

        有参数的函数:

        例题:

        <?php

        function myfun($arg){

        echo "这是${arg}语言的一个函数"; //注意:引用参数的时候要用{}扩

        起来。

        }

        myfun("php");

        ?>

        这个程序的结果是:这是php语言的一个函数

        按值传递:

        例题:

        <?

        $num=100;

        function fun($a){

        echo '$a='.$a*=10;

        echo '<br>';

        }

        fun($num);

        echo '$num='.$num;

        ?>

        这个程序的结果是:

        $a=1000

        $num=100;

        按地址传递:注意取地址符号(&)的使用 <?

        $num=100;

        function fun($a){

        echo '$a='.$a*=10;

        echo '<br>';

        }

        fun(&$num);

        echo '$num='.$num; ?>

        这个程序的结果是:

        $a=1000

        $num=1000

        默认传值:

        注意:尽量不要将默认值参数定义在第一个参数位置,容易造成

        <?

        function myfun($a1,$a2){

        echo '$a='.$a*=10;

        echo '<br>';

        }

        myfun(100,8);

        ?>

        这个程序的结果是:

        10000

        800

        带有return的函数

        <?php

        function myfun($arg1){

        $arg1*=8;

        return $arg1;

        }

        echo myfun(10); ?>

        这个程序的结果是:80

        函数自身调用

        <?php

        function myfun($arg){

        if($arg==0)

        return 1;

        return $arg*myfun($arg-1);

        }

        echo myfun(4); ?>

        这个程序的结果是:24

        变量函数:如果一个变量名后有括号,PHP则搜索与变量值相同的函数。并且执行它无参变量函数:

        <?php

        function f(){

        echo "hello php!"; }

        $temp="f";

        $temp();

        ?>

        这个程序的结果是:hello php;

        带参变量函数:

        <?php

        function f($arg){

        return $arg*10; }

        $temp="f";

        echo $temp(10); ?>

        这个程序的结果:100;

        变量的作用域:

        global语句:

        <?php

        $a=100;

        echo $a.'<br>'; function write(){

        global $a;

        $a=20;

        }

        write();

        echo $a;

        ?>

        这个程序的结果是:

        100

        20

        <?php

        $a=100;

        echo $a.'<br>'; function write(){

        $a=20;

        }

        write();

        echo $a;

        ?>

        这个程序的结果是:

        100

        100

        static 语句:静态变量

        <?

        function sum(){

        static $a=0;

        echo $a.' ';

        $a++;

        }

        sum();

        sum();

        sum();

        ?>

        这个程序的结果是:0 1 2

        <?

        function sum(){

        $a=0;

        echo $a;

        $a++;

        }

        sum();

        sum();

        sum();

        ?>

        这个程序的结果是:0 0 0

        获取时间和日期

        a - "am" 或是 "pm"

        A - "AM" 或是 "PM"

        d - 几日,二位数字,若不足二位则前面补零; 如: "01" 至 "31" D - 星期几,三个英文字母; 如: "Fri"

        F - 月份,英文全名; 如: "January" h - 12 小时制的小时; 如: "01" 至 "12"

        H - 24 小时制的小时; 如: "00" 至 "23"

        g - 12 小时制的小时,不足二位不补零; 如: "1" 至 12" G - 24 小时制的小时,不足二位不补零; 如: "0" 至 "23" i - 分钟; 如: "00" 至 "59"

        j - 几日,二位数字,若不足二位不补零; 如: "1" 至 "31" l - 星期几,英文全名; 如: "Friday" m - 月份,二位数字,若不足二位则在前面补零; 如: "01" 至 "12" n - 月份,二位数字,若不足二位则不补零; 如: "1" 至 "12" M - 月份,三个英文字母; 如: "Jan"

        s - 秒; 如: "00" 至 "59"

        S - 字尾加英文序数,二个英文字母; 如: "th","nd" t - 指定月份的天数; 如: "28" 至 "31"

        U - 总秒数

        w - 数字型的星期几,如: "0" (星期日) 至 "6" (星期六) Y - 年,四位数字; 如: "1999"

        y - 年,二位数字; 如: "99"

        z - 一年中的第几天; 如: "0" 至 "365"

        字符串:

        1. 格式化字符:

        1):trim():去除两端的空格。

        例题:

        <?

        $str=' wo shi guo dan dan ';

        echo trim($str);

        ?>

        这个程序的结果是:|wo shi guo dan dan|

        2): ltrim():去除左端的空格。

        例题:

        <?

        $str=' wo shi guo dan dan ';

        echo ltrim($str);

        ?>

        这个程序的结果是:|wo shi guo dan dan |

        3): rtrim():去除右端的空格。

        例题:

        <?

        $str=' wo shi guo dan dan ';

        echo ltrim($str);

        ?>

        这个程序的结果是:| wo shi guo dan dan|

        4): strtoupper();把字符串中的小些部分全部转换成大写

        例题:

        <?

        $str=?wo shi guo dan dan';

        echo strtoupper($str);

        ?>

        这个程序的结果是:WO SHI GUO DAN DAN

        5): strtolower();把字符串中的大写部分全部转换成小写;

        例题:

        <?

        $str=?WO SHI GUO DAN DAN';

        echo strtolower($str); ?>

        这个程序的结果是:wo shi guo dan dan

        6) ucfirst();把字符串的第一个字母转换成大写。 Ucfirst中的u:upper c:convert 例题:

        <?

        $str='wo shi guo dan dan';

        echo ucword($str);

        ?>

        这个程序的结果是:Wo shi guo dan dan

        7): ucwords() 将每个单词的首字母转换为大写 例题:

        <?

        $str='wo shi guo dan dan';

        echo ucword($str);

        ?>

        这个程序的结果:Wo Shi Guo Dan Dan

        8): nl2br():把字符串中的 转换成<br>标签。

        参数就是要处理的字符串

        例题:

        <?

        $str="i love php, and you? ";

        $str=nl2br($str);

        echo $str;

        ?>

        这个程序的结果是:

        i love php,<br />

        and you?

        9): htmlspecialchars(str,quote_style);

        str:要转换的字符

        quote_style:转换方式,主要对单引号和双引号进行转换。值如下:

        ENT_COMPAT 双引号被转换

        ENT_QUOTES 单引号和双引号都被转换

        ENT_NOQUOTES 任何一个引号都不被转换

        输出的结果是字符串的内容,如果不用htmlspcialchars()这个函数处理。输

        出的结果是:带有下划线的link。

        特殊符号的介绍:

        &lt:< &gt:< &#039:输出的是单引号

        例题:

        <?

        $str="<a href='www.baidu.com'>link</a>";

        $str=htmlspecialchars($str);

        echo $str;

        ?>

        这个程序输出的结果是:"<a href='www.baidu.com'>link</a>

        10): strip_tags():去除字符串中的php和html代码。

        第一个参数是要处理的字符串:

        第二个参数是要留下的标签。

        例题1:

        <?

        $str="<font color=read><a href='www.baidu.com'>link</a></font>";

        $str=strip_tags($str); //只有一个参数的情况

        echo $str;

        ?>

        这个程序的结果是:不是超链接的“link”

        例题2:

        <?

        $str="<font color=read><a href='www.baidu.com'>link</a></font>";

        $strip_tags($str,"<font><a>"); //有两个参数的写法

        echo $str;

        ?>

        这个程序的结果是:带有超链接的“link“并且字体是红色的

        11): addslashes():按照一定的规则将字符串进行转义。

        magic_quotes_gpc = On 自动对 get post cookie的内容进行转义

        get_magic_quotes_gpc()检测是否打开magic_quotes_gpc

        例题:

        <?

        $str="hello 'jack'";

        $str=addslashes($str);

        echo $str;

        ?>

        这个程序的结果是:hello,?jack?

        12): stripslashes();去除字符串中的反斜杠

        参数是要处理的字符串。

        例题:

        <?

        $str="hello 'jack'";

        $str=stripcslashes($str);

        echo $str;

        ?>

        这个程序的结果是:hello „jack?

        13): Explode():分割字符串。

        第一个参数是分割号

        第二个参数是分割的字符串。

        第三个参数表示要分成几部分。

        这个函数的返回值类型是数组;

        例题:

        <?

        $str="jack;john;tom";

        $str=explode(";",$str);

        print_r($str);

        ?>

        这个程序的结果是:Array( [0] => jack [1] => john [2] => tom)

        14): implode():连接字符串。。

        第一个参数是:连接用到的符号

        第二个参数是要连接的数组。

        例题:

        <?

        $str=array('guo','dan','dan');

        $str=implode('-',$str);

        echo $str;

        ?>

        这个程序的结果是:guo-dan-dan

        15): Strtok();从指定字符串中去除指定字符。

        第一个参数是:要处理的字符串

        第二个参数是:要从字符串中去除的字符 例题:

        <?

        $str='wo;shi;gdd';

        $newstr=strtok($str,';');

        while ($newstr){

        echo $newstr;

        $newstr=strtok(';'); }

        ?>

        这个程序的结果是:

        WoShiGdd

        16): Substr()在指定的字符串中取出规定的字符串

        第一个参数:要处理的字符串

        第二个参数:提取子字符串开始的位置。(按照索引)

        第三个参数:提取的子字符串的长度。(这个参数可以不存在) <?

        $str='wo;shi;gdd';

        $newstr=substr($str,'2','4');

        echo $newstr;

        ?>

        这个程序输出的结果是:;sh

        17): strcmp(); 字符串的比较;(比较的时候区分大小写)

        两个参数都是字符串。

        比较的规则:从左向右按照字母的ASCII进行比较。 例题:

        <?

        $str1="abc";

        $str2="abcd";

        echo strcmp($str1,$str2); ?>

        这个程序的结果是:-1

        第一个字符串比第二个字符串大的时候返回的是1; 第一个字符串比第二个字符串小的时候返回的是-1; 两个字符串相等的时候返回的是0;

        18): strcasecmp():字符串的比较(不区分大小写)

        两个参数都是字符串。

        比较的规则:从左向右按照字母的ASCII进行比较。 例题:

        <?

        $str1="abc";

        $str2="ABC";

        echo strcasecmp($str1,$str2);

        ?>

        这个程序的结果是:0;

        第一个字符串比第二个字符串大的时候返回的是1; 第一个字符串比第二个字符串小的时候返回的是-1; 两个字符串相等的时候返回的是0;】

        19): strnatcmp();按自然顺序比较字符串的大小;

        两个参数都是字符串。

        比较的规则:先比较字符串的长度长度长的字符串大,如果长度相等,从

        左到右逐位按照ASCCII码进行比较。 例题:

        <?

        $str1="abc";

        $str2=”abcd”;

        echo strcmp($str1,$str2); ?>

        这个程序的结果是:-1;

        第一个字符串比第二个字符串大的时候返回的是1; 第一个字符串比第二个字符串小的时候返回的是-1; 两个字符串相等的时候返回的是0;】

        20): Strnatcasecmp():用法和strnatcmp相同,只是不区分大小写。

        两个参数都是字符串。

        比较的规则:先比较字符串的长度长度长的字符串大,如果长度相等,从左到右逐位按照ASCCII码进行比较。

        例题:

        <?

        $str1="abc";

        $str2=”ABC”;

        echo strcmp($str1,$str2);

        ?>

        这个程序的结果是:0;

        第一个字符串比第二个字符串大的时候返回的是1;

        第一个字符串比第二个字符串小的时候返回的是-1;

        两个字符串相等的时候返回的是0;】

        21): strstr();在指定的字符串中查找字符串。

        第一个参数:从这个字符串中查询。

        第二个参数:要找的字符串。

        例题:

        <?

        $str1="abcefg@habcdefgh";

        $str2="ab";

        echo strstr($str1,$str2);

        ?>

        这个程序的结果是:abcefg@habcdefgh

        查询的规则:从左向右的顺序:输出第一次出现要找的字符的位置右边的所

        有的字符并且包含要找的字符。字符串中没有要查找的字符,返回null。

        22): stristr();和strstr的功能相同,只是不区分大小写。

        第一个参数:从这个字符串中查询。

        第二个参数:要找的字符串

        例题:

        <?

        $str1="abcefg@habcdefgh";

        $str2="F";

        echo stristr($str1,$str2).'<br>';

        ?>

        这个程序输出的结果是:fg@habcdefgh

        查询的规则:从左向右的顺序:输出第一次出现要找的字符的位置右边的所

        有的字符并且包含要找的字符。字符串中没有要查找的字符,返回null。

        23): strrchr();从最后一次搜索到的字符处返回

        第一个参数:从这个字符串中查询。

        第二个参数:要找的字符串

        例题:

        <?

        $path = "c:aaaa.html";

        $filename = strrchr($path,"");

        echo $filename;

        ?>

        这个程序的输出结果是:a.html;

        24): strpos():在指定的字符串中查找子字符串第一次出现的位置,找不到返回

        fase;

        第一个参数:在这个字符串中查找。

        第二个参数:要查找的子字符串。

        第三个参数:定义查证范围的开始位置。

        例题:

        <?

        $path = "abcdeabcdeabcde";

        $filename = strpos($path,"b",4);

        echo $filename;

        ?>

        这个程序的输出结果是:6;

        25): strrpos():功能和strpos相同,定义范围的时候,是子字符串最后一次出

        现的位置。

        第一个参数:在这个字符串中查找。

        第二个参数:要查找的子字符串。

        第三个参数:定义查证范围的开始位置。

        例题:

        <?

        $path = "abcdeabcdeabcde";

        $filename = strrpos($path,"b",4);

        echo $filename;

        ?>

        这个程序的查询结果是:11;

        26): str_replace():用新的字符串替换指定目标字符串中的子字符串。

        第一个参数:子字符串:

        第二个参数:新字符串。

        第三个参数:目标字符串.

        例题:

        <?

        $path = "abcdeabcdeabcde";

        $filename =str_replace('ab','woshi',$path);

        echo $filename;

        ?>

        这个程序的是输出结果是:woshicdewoshicdewoshicde。 27): substr_replace();

        第一个参数:原始字符串

        第二个参数:新字符串

        第三个参数:替换的开始位置

        第四个参数:要替换的字符串的长度。(可以存在,也可以不存在)

        <?

        $str="hello php!";

        $newstr=substr_replace($str,'hi',0,5);

        echo $newstr;

        ?>

        这个程序的结果是:hi php!

        28):strlen();求字符串的长度。

        参数是要求长度的字符串的。

        例题:

        <?

        $str="wohshigdd";

        echo strlen($str);

        ?>

        这个程序的结果是:9

        表单:

        1. 表单的三种提交方式:

        1).get方式:功能:获取get方式提交的数据

        格式:$_GET[“formelement”]

        2):post方式:功能:获取post方式提交的数据

        格式:$_POST[“formelement”]

        3):request方式:功能:获取任意方式提交的数据

        格式:$_REQUEST[“formelement”]

        2. 文件上传:

        $_FILES[“filename”] :返回的值的类型是文件对象

        1):$_FILES[“filename”][“name”]:返回上传文件的文件名

        2): $_FILES[“filename”][“type”]:返回上传文件的类型

        3): $_FILES[“filename”][“size”]:返回上传文件的大小

        4): $_FILES[“filename”][“tmp_name”]:返回上传文件的临时文件名

        5): $_FILES[“filename”][“error”]:返回上传文件相关的错误代码

        Error属性的返回值的几种情况:

        0:没有上传错误,上传成功

        1.:上传文件超过了php.ini文件中upload_max_filesize选项限制的

        值

        2.:上传文件超过了HTML表单中MAX_FILE_SIZE选项限制的值

        3.:文件只有部分被上传

        4.:没有文件被上传

        例题:

        html文件:

        <html>

        <form action="uploadfile.php" enctype="multipart/form-data"

        method="POST">

        <input type="file" name="uploadfile" >

        <input type="submit" value="上传">

        </form>

        </html>

        Uploadfile.php文件

        <?

        $uploaddir="./uploads/";

        //$uploadfile=$uploaddir.$_FILES["uploadfile"]["name"];

        $uploadfile=date("Yhsm").strrchr($uploaddir.$_FILES["uploadf

        ile"]["name"],".");

        if(move_uploaded_file($_FILES["uploadfile"]["tmp_name"],$upl

        oadfile)){

        print "上传成功".'<br>';

        }else {

        print "上传失败".'<br>';

        }

        echo "上传的文件类型".$_FILES['uploadfile']["type"].'<br>';

        echo "上传的文件名".$_FILES['uploadfile']["name"].'<br>';

        echo "上传的文件大小".$_FILES['uploadfile']["size"].'<br>';

        ?>

        文件上传的几个相关属性:

        1):file_uploads=on:是否允许通过http上传文件的开关

        2):upload_tmp_dir=”${path} mp:存放临时文件。”

        3):upload_max_file=8M: 允许上传的最大文件的大小

        4):post_max_size=10M: 控制在采用POST方法进行一次表单提交中PHP所能

        够接收的最大数据量。

        5):max_input_time = 60(秒):以秒为单位对通过POST、GET以及PUT方式

        接收数据时间进行限制。如果应用程序所运行环境处在低速链路上,则需

        要增加此值以适应接收数据所需的更多时间

        6):memory_limit = 8M :为了避免正在运行的脚本大量使用系统可用内

        存,PHP允许定义内存使用限额。通过memory_limit变量来指定单个脚本

        程序可以使用的最大内存容量变量memory_limit的值应当适当大于

        post_max_size的值

        url编码相关的几个属性:

        1):urlencode():

        功能:对url进行编码。对所有非字母、数字字符转换成%后跟16进制

        数,空格用+表示。

        例题:

        <?

        $url="教程

        wdl=aaa";

        $encodeurl= urlencode($url); //编码函数

        echo $encodeurl.'<br>';

        ?>

        这个程序的结果:

        http%3A%2F%2Fwww.baidu.com%2Fs%3Fwd%3DPHP%BD%CC%B3%CC+wdl%3D

        aaa

        2):urldecode()

        功能:对上面函数转换后的编码进行解码

        <?

        $url="教程

        wdl=aaa";

        $encodeurl= urlencode($url); //编码函数

        echo urldecode($encodeurl); //解码解码函数

        ?>

        这个程序的结果是:教程 wdl=aaa

        Session的用法:

        session是存放在服务器端的一个变量,session 是通过sessionid区

        分的。

        $_SESSION[“session_name”] 在多个页面之间传递值

        格式:$_SESSION[“filename”] = “PHP.file”

        注意:开启php.ini中选项

        session.auto_start = 1 :表示有请求时就自动启动

        session_start()事件

        例题:

        sessionForm.php文件:

        <form action="session.php" method="POST">

        username:<input type="text" name="user"><br>

        password:<input type="password" name="password"><br>

        <input type="submit">

        </form>

        session.php文件:

        <?

        $_SESSION["user"]=$_POST["user"]; //设置session变量。

        $_SESSION["password"]=$_POST["password"];

        ?>

        <a href="showsession.php">显示</a>

        showsession.php文件:

        <?

        echo 'username:'.$_SESSION["user"].'<br>';

        echo 'password:'.$_SESSION["password"].'<br>';

        ?>

        数据库的连接:

        1. 服务器的连接函数:mysql_connection();

        第一个参数是:服务器

        第二个参数是:用户名

        第三个参数是:密码

        2. 选择数据库的函数:mysql_select_db();

        第一个参数是:数据库名。

        第二个参数是:服务器

        这个函数的返回值是boolean类型。

        3. 创建查询的函数是:mysql_query();参数是sql语句;

        返回值:资源标识、true和false三种

        4. 操作查询:mysql_fetch_row():参数是查询的结果

        例题:

        <?

        $conn=mysql_connect("localhost","root",""); //服务器的链接

        if(mysql_select_db("gdd",$conn)){ //判断数据库连接是否成

        功

        echo "连接成功~";

        }else{

        echo "连接失败~";

        }

        $sql="select * from user";

        $result=mysql_query($sql,$conn); //执行sql语句

        echo "<table border=1>";

        $f=mysql_fetch_field($result);

        echo "<tr>";

        foreach ($arr as $v){

        echo "<td>".$v."</td>";

        }

        echo "</tr>";

        while($arr=mysql_fetch_row($result)){

        echo "<tr>";

        foreach ($arr as $v)

        {

        echo "<td>".$v.'</td>';

        }

        echo "</tr>";

        }

        ?>

        </table>

        5): mysql_fetch_array($result):从查询语句返回的结果集中取得一行作

        为关联数组或数

        字数组,或二者都有

        例题:

        <?

        //exit也可以用die代替。

        $conn=mysql_connect("localhost","root","") or exit("连接数据库失败~");

        mysql_select_db("gdd");

        $str="select * from user";

        $result=mysql_query($str);

        echo "<table border=1>";

        while($arr=mysql_fetch_array($result)){

        echo "<tr>";

        for($i=0;$i<count($arr)/2;$i++){

        echo "<td>$arr[$i]&nbsp;</td>";

        }

        echo "<tr>";

        }

        echo "</table>";

        ?>

        6):数据库中字符集的设置方法:

        1). mysql_set_charset("gbk",$conn);设置字符集为gbk字符集。如果

        不写$conn,指的是设置的当前资源的字符集

        2).mysql_query("set names gbk",$conn); 通过执行sql语句,设置

        字符集为gbk字符集。如果不写$conn,指的是设置的当前资源的字符

        集

        7): mysql_num_rows($result):获取查询结果中的记录数。

        例题:

        <?

        $conn=mysql_connect("localhost","root","") or exit("连接数

        据库失败~");

        mysql_select_db("gdd");

        $str="select * from user";

        $result=mysql_query($str);

        echo "共有".mysql_num_rows($result)."条记录<p>";

        ?>

        8):mysql_error():本函数可以得到 MySQL数据库服务器的错误信息。

        例题:

        <?

        $conn=@mysql_connect("localhost","root","");

        mysql_select_db("userf");

        echo mysql_error($conn);

        ?>

        9):setcookie(string name, string value, int expire, string path,

        string domain, int secure); 创建cookie ,本函式的参数除了

        第一个 name 之外,都可以省略。

        文件操作:

        file_exists(path):判断文件是否存在:

        path:文件的路径,可以是绝对路径,也可以是相对路径。 例题:

        <?

        if(file_exists("cookie.php")){

        echo "文件存在";

        }else{

        echo "文件不存在";

        }

        ?>

        Fopen(filename,method):打开文件.

        Filename:文件的名字

        Method:打开的方式

        Method的几种;

        r:只读的方式打开文件

        r+:读写的方式打开文件。

        w:只写方式打开文件。文件不存在创建文件。

        w+:读写方式打开文件。文件不存在时创建文件。

        a: 写方式打开文件,指针指向文件尾,表示可以在文件中追加数据,若文件不存在

        则创建该文件

        a+:读写方式打开文件指针指向文件尾,表示可以在文件中追加数据,若文件不存在

        则创建该文件

        b:以二进制方式打开文件

        <?

        fopen("hello.txt","r");

        //fopen("hello.txt","r+");

        //fopen("hello.txt","w");

        //fopen("hello.txt","w+");

        //fopen("hello.txt","a");

        //fopen("hello.txt","a+");

        //fopen("hello.txt","b");

        echo "文件被打开了";

        ?>

        fwrite(resource,string);在打开的文件中添加指定的内容。 Resource:打开的数据文件。

        String:要添加的内容。

        <?

        $fp=fopen("hello.txt","w+");

        for($i=0;$i<=10;$i++){

        fwrite($fp,$i);

        }

        echo "文件被写好了";

        ?>

        Fclose(name);关闭打开的文件。

        例题:

        <?

        $open=fopen("hello.txt","w+");

        fclose($open);

        echo "操作成功~";

        ?>

        Fgets(resouce);读取一行的数据

        Resource:打开的文件。

        例题:

        <?

        $open=fopen("hello.txt","r");

        $fget=fgets($open,1024);

        echo $fget;

        ?>

        Readfile(path):读取整个文件。

        Path:文件的路径,可以是绝对路径,也可以是相对路径。 函数的返回值是:文件的内容和文件内容的字节数 例题:

        <?

        echo readfile("hello.txt"); ?>

        Filsesize(path):取文件大小

        Path:文件的路径,可以是绝对路径也可以是相对路径。 函数的返回值是:文件的内容的字节数。

        例题:

        <?

        echo filesize("d:d.txt"); ?>

        Unlink(path);删除文件。

        Path:文件的路径,可以是绝对的也可以是相对的。

        函数的返回值类型是布尔类型的。 <?

        if(file_exists("hello.txt")){

        if(unlink("hello.txt"))

        {

        echo "删除成功~";

        }else{

        echo "删除失败~";

        }

        }else{

        echo "文件不存在~"; }

        ?>

        mkdir(name);创建目录

        name:目录的名称。

        函数的返回值是布尔类型的。

        例题:

        <?

        mkdir("www"); ?>

        Rmdir(name);删除目录

        Name:删除目录。

        函数的返回值类型是布尔类型。 <?

        if(rmdir("www")){

        echo "删除成功~";

        }else{

        echo "删除失败~";

        }

        ?>

        basename(path);取得文件名。 Path:文件的路径。这个参数只是一个字符串。不一定是存在的文件的路径。

        函数的返回值类型是文件的名字(带有扩展名)

        例题:

        <?

        echo basename("c:wwwhello.txt"); ?>

        pathinfo(path):获取路径文件信息。

        Path:文件的路径。这个参数只是一个字符串。不一定是存在的文件的路径。 函数的返回值类型是:数组。数组的下标分别是:1.dirname:路径 2.basename:文件的全名 3.文件的扩展名:extension. 4.文件的名是:filename 例题:

        <?

        $fileinfo=pathinfo("c:wwwhello.txt");

        print_r($fileinfo);

        exit();

        echo "<br>路径是:".$fileinfo['dirname'].'<br>';

        echo "文件全名是:".$fileinfo['basename'].'<br>';

        echo "扩展名是:".$fileinfo['extension'].'<br>';

        echo "文件名是:".$fileinfo['filename'].'<br>';

        ?>

        Realpath(name);获取绝对路径

        Name:文件的名字(实实在在存在的文件)

        函数的返回值类型是:字符串类型的文件的绝对路径

        例题:

        <?

        echo realpath("hello.txt");

        ?>

        Copy(path1,path2):复制文件。

        Path1:被复制的文件的路径,可以是绝对的也可以是相对

        Path2:要复制的文件的路径,可以是绝对路径也可以是相对路径

        例题:

        <?

        if(copy("hello.txt","d:a.txt")){

        echo "复制成功~";

        }else{

        echo "复制失败~";

        }

        ?>

        Is_dir(path);判断是不是目录。

        Path:目录的路径,可以是绝对的,也可以是相对的。 函数的返回值是布尔类型的。

        例题:

        <?

        if(is_dir("uploads")){

        echo "这是一个文件夹";

        }else{

        echo "这不是一个文件夹";

        }

        ?>

        Opendir(path):打开目录。

        Path:目录的路径,可以是绝对的,也可以是相对的。 函数的返回值是布尔类型的。

        例题:

        <?

        if(opendir("d:game")){

        echo "文件夹被打开了";

        }else{

        echo "文件夹没有别打开";

        }

        ?>

        Readdir(resouse):读取目录。

        resouse:被打开的目录。

        函数的返回值类型是布尔类型的。

        <?

        $opendir=opendir("d:game");

        if(readdir($opendir)){

        echo "目录被读取";

        }else{

        echo "目录没有被读取~";

        }

        ?>

        Closedir(resouse);关闭目录

        Resouse:被打开的目录

        没有返回值

        例题:

        <?

        $opendir=opendir("d:game");

        echo "目录被打开了";

        closedir($opendir);

        echo "目录被关闭了";

        ?>

        正则表达式:

        是一种可以永远模式匹配和替换的强有力的工具。

        ^http:表示匹配以http开头的所有字符 [a-z]匹配所有小写字符

        abc 匹配字符串abc。

        模式:

        是正规表达式最基本的元素,它们是一组描述字符串特征的字符。

        正则表达式匹配时用到的一个函数。

        preg_match(match,str):进行匹配的函数 match:正则表达式的规则;

        str:要验证的字符串。

        例题:(ip地址的验证)

        <?

        $str="172.18.88.114";

        if(preg_match("/^(d{1,3}.){3}d{1,3}/",$str)){

        echo "成功~";

        }else{

        echo "失败";

        }

        ?>

        符号 意义

        ^ 表示匹配的字符必须在最前端

        $ 表示匹配的字符必须在最后端

        * 匹配*前面的字符0次或多次

        + 匹配+前面的字符1次或多次

        ? 匹配,前面的字符0次或1次

        . 匹配除换行符外的所有单个的字符

        (x) 匹配„x?并记录匹配的值

        | 匹配|前面或者后面的字符

        {n} 匹配前面的字符n次

        {n,} 匹配前面的字符至少n次

        {n,m} 匹配前面的字符n 到m次。

        [] 匹配列出的字符串中的任意一个字符

        [^] 不匹配列出的字符串中的任意一个字符

        空格 匹配一个空格

        预定义字符和字符类

        字符 意义 d数字 表示匹配数字0-9中任一字符,功能类似[0-9] D非数字 表示匹配一个非数字,功能类似[^0-9] w字符 表示匹配一个单词字符.功能类似[a-zA-Z0-9]

        W非字符 表示匹配一个非单词字符  匹配一个单词的分界线,比如一个空格

        图像:

        函数:

        Imagecreate(width,height):创建画布:

        Width:画布的宽度。

        Height:画布的高度。

        Imagecolorallocate(resouse,R,G,B):定义颜色 Resouse: 画布的变量。

        R:red颜色的值。

        G:green颜色的值。

        B:blue颜色的值。

        Imageline(resouse,startx,starty,endx,endy,color):画一条直线 Resouse:画布

        Stratx:直线开始的横坐标。

        Starty:直线开始的纵坐标.

        Endx: 直线结束的横坐标。

        Endy:直线结束的纵坐标。

        Color:直线的颜色。

        Imagearc(resouse,centerx,centery,width,height,start,end,color)画一条弧

        线。

        Resouse;画布。

        Centerx:圆心的x坐标。

        Centery:圆心的y坐标。

        Width:画成的图像的宽度。

        Height:画成的图像的高度。

        Start:弧线开始的度数

        End:弧线结束的度数。

        Imagestring(resouse,size,x,y,str,color):画一个字符串。

        Resouse:画布。

        Size:字符串的字体的大小

        X:开始写字符串的横坐标

        Y:开始写字符串的纵坐标。

        Str:要画的字符串。

        Color:字符串的颜色。

        例题:

        <?php

        header("Content-type:image/gif"); //发送的是http的头的内容

        $im=imagecreate(400,300); //创建画布

        $black=imagecolorallocate($im,0,0,0); //定义颜色。四个参数分别是画布,rgb的值

        $red=imagecolorallocate($im,255,0,0); //定义一个红色

        $yellow=imagecolorallocate($im,255,255,128);

        imageline($im,1,1,350,25,$yellow); //六个参数分别是:画布,线开始的横坐标,线开始的横坐标线开始的横坐标

        imagearc($im,200,15,20,20,35,190,$red); //六个整形的参数分别是圆心的

        imagestring($im,5,150,150,"Graph TEST!",$red); //三个整形的参数分别是字号和位置

        imagestring($im,10,150,180,"wo shi gdd!",$red); //三个整形的参数分别是字号和位置

        imagegif($im);

        imagedestroy($im);

        ?>

        array_unshift() //在数组的头部添加元素,也就是把一个新的元素插入到数组,相应索引还自动改变

        array_push() //在数组尾部添加元素

        array_shift() //在数组头部删除元素

        array_pop() //在数组尾部删除元素

        


PHP使用模板引擎PHP缓存技术的多种方法
php常用字符串函数PHP二维数组的简易排序
PHP如何读取xml文件 php版本比较
PHP比ASP的优势php入门教程
php与js我们如何选择呢PHP+Ajax实现分页技术
HP的简明教程PHP学习总结笔记
PHP基本语法详解Char3 php基础知识
解析PHP中的内存管理动态分配和释放内存php与apache结合使你的网站服务器支持php服务器脚本程序
信息发布:广州名易软件有限公司 http://www.myidp.net
  • 名易软件销售服务
  • 名易软件销售服务
  • 名易软件技术服务

  • PHP编程要点