PHP基础知识点总结

1.php数组 
var_dump()函数返回数组的数据类型和值 
2.php对象 
在 PHP 中,对象必须声明。 
首先,你必须使用class关键字声明类对象。类是可以包含属性和方法的结构。 
然后我们在类中定义数据类型,然后在实例化的类中使用数据类型: 
例子:

<?php
            class Car
            {
              var $color;
              function Car($color="green") {
                $this->color = $color;
              }
              function what_color() {
                return $this->color;
              }
            }
             ?>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

3.php常量 
常量被定义之后,在脚本任何地方都不能被改变 
一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。 
设置php常量 函数语法为:define(String constant_name,mixed value,case_sensitive =true); 
该函数的三个参数:constant_name:必选参数,常量名称,即标识符 
value:必选参数,常量的值 
case_sensitive:可选参数,指定是否大小写敏感,设定为true表示不敏感 
4.php字符串变量 
在php中,只有一个字符串运算符 
并置运算符(.)用于把两个字符串值连接起来 
echo txt1."".txt2;(测试下,中间的双引号可否去掉) 
5.php的string函数 
strpos()函数 用于在字符串内查找一个字符或一段指定的文本 
strpos("Hello world!","world"); 结果:6 
6.php的运算符 
算数运算符: 
x/y 除 x除以y的商 
x%y 模(除法的余数) x除以y的余数 
比较运算符: 
x===y恒等于 如果x等于y,且它们类型相同,则返回true 
!=和<>都是不等于的意思 
!==不恒等于 
逻辑运算符: 
异或 x or y 如果x和y,有且仅有一个为true,则返回true 
数组运算符: 
x == y 相等 如果 x 和 y 具有相同的键/值对,则返回 true 
x === y 恒等 如果 x 和 y 具有相同的键/值对,且顺序相同类型相同,则返回 true 
7.php的数组 
数组是一个能在单个变量中存储多个值的特殊变量 
array()函数用于创建数组 
三种类型数组: 
数值数组 带有数字ID的数组 
关联数组 带有指定的键的数组,每个键关联一个值 
多维数组 包含一个或多个数组的数组 
获取数组的长度 count函数 
遍历关联数组 
for() 
foreach()循环

<?php
            $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
            foreach($age as $x=>$x_value)
            {
                echo "Key=" . $x . ", Value=" . $x_value;
                echo "<br>";
            }
        ?>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

8.php数组排序函数 
sort() - 对数组进行升序排列 
rsort() - 对数组进行降序排列 
asort() - 根据关联数组的值,对数组进行升序排列 
ksort() - 根据关联数组的键,对数组进行升序排列 
arsort() - 根据关联数组的值,对数组进行降序排列 
krsort() - 根据关联数组的键,对数组进行降序排列

9.php超级全局变量 
GLOBALGLOBAL 是PHP的一个超级全局变量组,在一个PHP脚本的全部作用域中都可以访问。 
$GLOBAL 是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。 
实例:

    <?php 
            $x = 75; 
            $y = 25;
            function addition() 
            { 
                $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; 
            }            
            addition(); 
            echo $z; 
        ?>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
$SERVER
    $_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。

$_REQUEST,$_POST,$_GET都可以获得表单的数据
  • 1
  • 2
  • 3
  • 4
  • 5

10.for循环 
foreach(arrayasvalue) 

要执行的代码 
}

11.创建php函数 
准则:函数的名称应该提示出它的功能 
函数名称以字母或下划线开头(不能以数字开头) 
实例:function functionName() 

要执行的代码 

添加参数,如加两个参数 function writeName(fname,punctuation) 
返回值:需让函数返回一个值,请使用 return 语句

12.魔术变量 
LINE文件中的当前行号 
FILE文件的完整路径和文件名 
DIR文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。 
它等价于 dirname(FILE)。除非是根目录,否则目录中名不包括末尾的斜杠。 
(PHP 5.3.0中新增) 
FUNCTION 函数名称 
CLASS 类的名称 
TRAIT /???????????????????????此处不懂,还需要研究一下 
METHOD 类的方法名 返回该方法被定义时的名字(区分大小写) 
NAMESPACE 当前命名空间的名称(区分大小写)

13.命名空间(namespace) 
//此处回头再看,看着有点烦??????????????

14.表单 
表单:先在form表单的 action里面填上xxx.php,method是“post”,然后进入xxx.php文件中使用$_POST[“”]方法获得相应的值 
当method是“get”的时候所有变量名和值都会显示在url中,注:在发送密码或敏感信息的时候,不应该使用此方法。然而,正因为变量显示在 URL 中, 
因此可以在收藏夹中收藏该页面。在某些情况下,这是很有用的。 
注释:HTTP GET 方法不适合大型的变量值。它的值是不能超过 2000 个字符的。

 预定义的 $_REQUEST 变量包含了 $_GET、$_POST 和 $_COOKIE 的内容。
    $_REQUEST 变量可用来收集通过 GET 和 POST 方法发送的表单数据。
表单验证:
     $_SERVER["PHP_SELF"] 会发送表单数据到当前页面,而不是跳转到不同的页面。
     htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。
        预定义的字符是:
            & (和号) 成为 &amp;
            " (双引号) 成为 &quot;
            ' (单引号) 成为 &#039;
            < (小于) 成为 &lt;
            > (大于) 成为 &gt;
        $_SERVER["PHP_SELF"] 可以通过 htmlspecialchars() 函数来避免被利用
        示例:<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
    使用 PHP 验证表单数据
        首先我们对用户所有提交的数据都通过 PHP 的 htmlspecialchars() 函数处理。
        当我们使用 htmlspecialchars() 函数时,在用户尝试提交以下文本域:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
<script>location.href('http://www.w3cschool.cc')</script>
  • 1
        - 该代码将不会被执行,因为它会被保存为HTML转义代码,如下所示:
  • 1
  • 2
&lt;script&gt;location.href('http://www.w3cschool.cc')&lt;/script&gt;
  • 1
        以上代码是安全的,可以正常在页面显示或者插入邮件中。
        当用户提交表单时,我们将做以下两件事情,:
            使用 PHP trim() 函数去除用户输入数据中不必要的字符 (如:空格,tab,换行)。
            使用PHP stripslashes()函数去除用户输入数据中的反斜杠 (\)
        表单示例:`http://qctlr.cai.swufe.edu.cn/w3c/php/php-form-complete.html`
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

15.PHP数据库 
mysql连接语法:在php中使用mysqli_connected函数完成 
语法:mysqli_connect(host,username,password,dbname); 
host:可选,规定要连接的服务器.可以是要连接的服务器,可以是主机名或者IP地址 
password: 规定登陆的密码 
dbname: 规定执行查询的使用的默认数据库

     连接的示例代码:
  • 1
  • 2
<?php
    // Create connection              
        $con=mysqli_connect("example.com","peter","abc123","my_db");
    // Check connection
        if (mysqli_connect_errno($con))
        {
                echo "Failed to connect to MySQL: " . mysqli_connect_error();
        }
?>    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
    关闭的代码:mysqli_close($con);
php创建数据库和表
    创建数据库:关键代码如下:
        $sql="CREATE DATABASE my_db";//sql语句
        mysqli($con,$sql);//执行语句
    创建表:
        $sql="CREATE TABLE Person(FirstName CHAR(30),LastName CHAR(30),Age INT)";
        mysqli($con,$sql);//执行语句
        注:主键和自动递增字段:PID INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(PID),
                    (AUTO_INCREMENT,PRIMARY KEY这是递增和主键的关键字)

php MySql Insert Into
    和之前的创建的方法差不多,就是sql语句的方法不同
    sql的两种写法:1.INSERT INTO TABLE_NAME VALUES(value1,value2,value3);
              2.INSERT INTO TABLE_NAME(column1,column2,column3,...)VALUES (value1,value2,value3,..);
php Mysql Select
    sql语句:SELECT column_name(s) FROM table_name 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
    $result=mysqli_query($conn,$sql);//result数组中存储了查询得到的数据
    while($row=mysqli_fetch_array($result)){
            echo $row['FirstName']." " .$row['LastName'];
            echo "<br>"
    }
  • 1
  • 2
  • 3
  • 4
  • 5
//以下这几个操作,都是需要执行mysqli_query(,)这个操作。
php Mysql Where
    SELECT column_name(s) FROM table_name WHERE column_name operator value

php Mysql Order By
`SELECT column_name(s) FROM table_name ORDER BY column_name(s) ASC|Desc`
    可以根据多个列进行排序。当按照多个列进行排序时,只有第一列的值相同时才使用第二列:
        SELECT column_name(s)
        FROM table_name
        ORDER BY column1, column2

php Mysql Update 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
UPDATE table_name SET column1=value,column2=value2,...
        WHERE some_column=some_value
  • 1
  • 2
php Mysql Delete
    DELETE FROM table_name WHERE some_column=some_value
  • 1
  • 2
  • 3

16.php XML 
XML 用于描述数据,其焦点是数据是什么。XML 文件描述了数据的结构。 
在 XML 中,没有预定义的标签。您必须定义自己的标签。 
有两种基本的 XML 解析器类型: 
基于树的解析器:这种解析器把 XML 文档转换为树型结构。它分析整篇文档,并提供了对树中元素的访问,例如文档对象模型 (DOM)。 
基于时间的解析器:将 XML 文档视为一系列的事件。当某个具体的事件发生时,解析器会调用函数来处理。

扫描二维码关注公众号,回复: 4584236 查看本文章
PHP XML DOM
     DOM是什么?
    w3c DOM提供了针对HTML和XML文档的标准对象集,以及用于访问和操作这些文档的标准接口
    W3C DOM 被分为不同的部分(Core, XML 和 HTML)和不同的级别(DOM Level 1/2/3):
        * Core DOM - 为任何结构化文档定义标准的对象集
        * XML DOM - 为 XML 文档定义标准的对象集
        * HTML DOM - 为 HTML 文档定义标准的对象集
     XML解析
    XML文档片段
        <?xml version="1.0" encoding="ISO-8859-1"?>
        <from>Jani</from>
    XML DOM 把上面的 XML 视为一个树形结构:
        Level 1: XML 文档
        Level 2: 根元素: <from>
        Level 3: 文本元素: "Jani"
    示例xml文件:
        <?xml version="1.0" encoding="ISO-8859-1"?>
            <note>
            <to>Tove</to>
            <from>Jani</from>
            <heading>Reminder</heading>
            <body>Don't forget me this weekend!</body>
            </note>

    加载和输出xml,并把它输出
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
<?php
                $xmlDoc=new DOMDocument();
                $xmlDoc->load("note.xml");

                print $xmlDoc->saveXML();
            ?>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
    输出结果:ToveJaniReminder Don't forget me this weekend!

    遍历XML(我们要初始化xml解析器,加载xml,并遍历<note>元素的的所有元素)
  • 1
  • 2
  • 3
  • 4
<?php
        $xmlDoc=new DOMDocument();
        $xmlDoc->load("load.xml");
        $x=$xmlDoc->documentElement;
        foreach($x->childNodes As $item)
        {
            print $item->nodeName ." = " .$item->nodeValue . "<br>";
        }
?>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
        输出结果:   #text = 
                to = Tove
                #text = 
                from = Jani
                #text = 
                heading = Reminder
                #text = 
                body = Don't forget me this weekend!
                #text =
        在上面的实例中,您看到了每个元素之间存在空的文本节点。
        当 XML 生成时,它通常会在节点之间包含空白。XML DOM 解析器把它们当作普通的元素,如果您不注意它们,有时会产生问题。 
php SimpleXML       
    提供了一种获取xml元素的名称和文本的简单方式
    SimpleXML 可把 XML 文档(或 XML 字符串)转换为对象,比如:
        元素被转换为 SimpleXMLElement 对象的单一属性。当同一级别上存在多个元素时,它们会被置于数组中。
        属性通过使用关联数组进行访问,其中的索引对应属性名称。
        元素内部的文本被转换为字符串。如果一个元素拥有多个文本节点,则按照它们被找到的顺序进行排列。

    示例xml文件 “note.xml”
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
    (1)、输出$xml变量的键和元素
        <?php
            $xml=simplexml_load_file("note.xml");
            print_r($xml);
        ?>
        结果:SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Don't forget me this weekend! 
    (2)、输出xml文件中每个元素的数据:
        <?php
            $xml=simplexml_load_file("note.xml");
            echo $xml->to . "<br>";
            echo $xml->from . "<br>";
            echo $xml->heading . "<br>";
            echo $xml->body;
        ?>
        结果:
            Tove
            Jani
            Reminder
            Don't forget me this weekend!
    (3)、输出每个子节点的元素名称和数据
        <?php 
            $xml=simplexml_load_file("note.xml");
            echo $xml->getName() . "<br>";
            foreach($xml->children() as $child)
            {
                echo $child->getName() . ": " . $child . "<br>";
            }
        ?>
        结果:
        note
        to: Tove
        from: Jani
        heading: Reminder
        body: Don't forget me this weekend! 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

17.php高级教程 
17.1 php多维数组 
一个数组中的值可以是另一个数组,另一个数组的值也可以是一个数组,依次,我们可以创建二维或者三维数组:

  $families=array
         (
        "Griffin"=>array
        (
            "Peter",
            "Lous",
            "Megan"
        ),
        "Quagmire"=>array
        (
            "Glenn"
        ),
        "Brown"=>array
        (
            "Cleveland",
            "Loretta",
            "Junior"
        )
         )
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
   结果如下:Array
    (
        [Griffin] => Array
        (
            [0] => Peter
            [1] => Lois
            [2] => Megan
        )
        [Quagmire] => Array
        (
            [0] => Glenn
        )
        [Brown] => Array
        (
            [0] => Cleveland
            [1] => Loretta
            [2] => Junior
        )
    )
17.2 php Date()格式化日期
    php date()函数用于格式化时间/日期
    语法:date(format,timestamp)
         format:必需,规定时间戳的格式
        格式化日期:format下面有很多可选字符:
                d:代表月中的天
                m:代表月
                Y:代表年(四位数)
                如date(Y/m/d)或date(Y.m.d)等等
         timestamp:必需.规定时间戳,默认是当前的日期和时间
        添加时间戳:mktime()函数可为指定的日期返回Unix时间戳
        Unix 时间戳包含了 Unix 纪元(1970-01-01 00:00:00 GMT)和指定时间之间的秒数。
        mktime()语法
            mktime(hour,minute,second,month,day,year,is_dst)
        示例:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
<?php
        $tomorrow = mktime(0,0,0,date("m"),date("d")+1,date("Y"));
        echo "Tomorrow is ".date("Y/m/d", $tomorrow);
?>
  • 1
  • 2
  • 3
  • 4
            上面代码的输出如下所示:
                Tomorrow is 2009/05/12
17.3 php包含文件
    php include和require语句
    在php中,你可以在服务器执行php文件之前,在该文件中插入一个文件的内容
    include和require语句用于在执行流中插入写在其它文件中的有用的代码
    include和require除了处理错误的方式不同之外,在其他方面都是相同的
        include:生成一个警告,在错误发生之后,脚本会继续执行
        require:生成一个致命错误,在错误发生后脚本会停止执行
    语法:include 'filename';
          require 'filename';

    示例:<?php include 'header.php'; ?>

17.4 php文件处理
    fopen()函数用于打开文件
    此函数的第一个参数含有要打开的文件的名称,第二个参数规定了使用哪种模式来打开文件:
    $file=fopen("welcome.txt","r");
    第二个参数的各种模式:
        r   只读。在文件的开头开始。
        r+  读/写。在文件的开头开始。
        w   只写。打开并清空文件的内容;如果文件不存在,则创建新文件。
        w+  读/写。打开并清空文件的内容;如果文件不存在,则创建新文件。
        a   追加。打开并向文件末尾进行写操作,如果文件不存在,则创建新文件。
        a+  读/追加。通过向文件末尾写内容,来保持文件内容。
        x   只写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。
        x+  读/写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。

    以下的这段语句写的是,假如fopen打不开该文件,则会生成一段消息
        $file=fopen("welcome.txt","r") or exit("Unable to open file!");
    关闭文件:fclose($file)
    检测文件末尾(EOF)
        在循环遍历未知长度的数据时,feof()函数很有用。
        if(feof($file)) echo "文件结尾";
    逐行读取文件
        fgets()函数用于从文件中逐行读取文件。
        注:在调用该函数之后,文件指针会移动到下一行。
        while(!feof($file))
        {
            echo fgets($file). "<br>";
        }
    逐字符读取文件
        fgetc()函数用于从文件中逐字符的读取文件
        注:在调用该函数之后,文件指针会移动到下一个字符
            操作和fgets方法差不多
17.5 php文件上传()????????????????此处需要自己进行一下操作。实战演练,不如肯定不知道咋回事
    http://www.runoob.com/php/php-file-upload.html

17.6 php Cookies 
    常用于识别用户,cookie是一种服务器留在用户计算机上的小文件,每当同一台计算机通过浏览器请求页面时,这台计算机将会发送cookie.通过
    php,您能够创建并取回cookie的值

    创建Cookie :setcookie(函数) 该函数必需位于<html>标签之前。
        setcookie(name, value, expire, path, domain);
    <?php
        setcookie("user", "Alex Porter", time()+3600);
    ?>
    注释:在发送 cookie 时,cookie 的值会自动进行 URL 编码,在取回时进行自动解码。(为防止 URL 编码,请使用 setrawcookie() 取而代之。)
    取回cookie的值
        php的$_COOKIE变量用于取回cookie的值 如:$_COOKIE["user"]
    用isset()函数来确认是否已设置了cookie   
    删除Cookie,
        <?php
            // set the expiration date to one hour ago
            setcookie("user", "", time()-3600);
        ?>


17.7 Php Sessions
    PHP session 变量用于存储关于用户会话(session)的信息,或者更改用户会话(session)的设置。
    Session 变量存储单一用户的信息,并且对于应用程序中的所有页面都是可用的。

17.8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74

18 php Json 
json函数 
1.json_encode 对变量进行 JSON 编码 
2.json_decode 对 JSON 格式的字符串进行解码,转换为 PHP 变量 
3.json_last_error 返回最后发生的错误 
String json_encode(value[,option=0]) 
value:要编码的值,该函数只对utf-8编码数据有效 
options:由以下常量组成的二进制掩码:JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK,JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT 
示例:

<?php
      $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
       var_dump(json_decode($json));
       var_dump(json_decode($json, true));
?>
  • 1
  • 2
  • 3
  • 4
  • 5
结果:
    object(stdClass)#1 (5) {
        ["a"] => int(1)
        ["b"] => int(2)
        ["c"] => int(3)
        ["d"] => int(4)
        ["e"] => int(5)
    }
    array(5) {
        ["a"] => int(1)
        ["b"] => int(2)
        ["c"] => int(3)
        ["d"] => int(4)
        ["e"] => int(5)
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

19 AJAX简介:无需加载整个网页的情况下,能够更新部分网页的技术

获取更多资料,进入QQ群:543592003

猜你喜欢

转载自blog.csdn.net/aven250/article/details/78019464