zoukankan      html  css  js  c++  java
  • 学习php

    <?php         ?>    php语法写在这里面

    $  php变量开始

    define   定义常量

    echo ""     输出字符   可以输出一个以上的字符串,比print快;

    print,只能输出一个字符串,始终返回1。

    .     字符串连接

    ;     以分号结尾

    //   #   /**/  三种注释

    变量区分大小写    关键词 不区分

    var_dump() 会返回变量的数据类型和值

    1、 字符串:引号(单引号或双引号)内的任何文本;

    $str="Hello";
    var_dump($str);

    结果为:string 'Hello' (length=5)

    2、 整数

    整数规则: 
    整数必须有至少一个数字(0-9) 
    整数不能包含逗号或空格 
    整数不能有小数点 
    整数正负均可 
    可以用三种格式规定整数:十进制、十六进制(前缀是 0x)或八进制(前缀是 0)

    $num=0x345;
    var_dump($num);

    3、 浮点数:有小数点或指数形式的数字;

    $decimal = 0.23;
    $decimal2=2e3;
    var_dump($decimal);
    var_dump($decimal2);

    运行结果为: 
    float 0.23 
    float 2000

    4、 逻辑:true或false,用于条件测试; 
    5、 数组:一个变量存储多个值;

    $it=array("google","apple","microsoft");
    var_dump($it);

    运行结果: 
    array (size=3) 
    0 => string 'google' (length=6) 
    1 => string 'apple' (length=5) 
    2 => string 'microsoft' (length=9)

    6、 对象:对象是存储数据和有关如何处理数据的信息的数据类型。

    明确地声明对象: 
    首先我们必须声明对象的类。对此,我们使用 class 关键词。类是包含属性和方法的结构。 
    然后我们在对象类中定义数据类型,然后在该类的实例中使用此数据类型。

    class Car
    {
      var $color;
      function Car($color="green") {
        $this->color = $color;
      }
      function what_color() {
        return $this->color;
      }
    }

    7、 NULL:表示变量无值,可用于标示变量为空,也可以用于区分空字符串和空数据库。

    五、字符串函数

    1. strlen():返回字符串的长度,以字符计;
    2. strpos():检索字符串内指定的字符或文本。 
      如果找到匹配,则会返回首个匹配的字符位置。如果未找到匹配,则将返回 FALSE。 
    注意:字符串中首字符的位置是 0 而不是 1。
    $str ="Hello IT!";
    echo strlen($str);
    echo "<br />";
    echo strpos($str,"IT");

    运行结果: 

    6

    六、PHP常量

    1.PHP常量的特点

    • 一旦被定义就无法更改或撤销定义;
    • 以字符或下划线开头(常量名称前面没有 $ 符号);
    • 自动全局。

    2.设置PHP常量

    使用define()函数,包含三个参数:

    • 第一个——>常量名称;
    • 第二个——>常量的值;
    • 第三个——>是否对大小写敏感,默认为false(对大小写敏感)。
    define("PHP","Personal Home Page.",true);
    echo PHP.'<br />';
    echo php;

    运行结果: 
    Personal Home Page. 
    Personal Home Page.

    七、PHP运算符

    1、算数运算符

    算数说明
    +
    -
    *
    /
    % 取模

    2、赋值运算符

    赋值等同于描述
    x =y x = y 右侧表达式为左侧运算数设置值。
    x += y x = x + y
    x -= y x = x - y
    x *= y x = x * y
    x /= y x = x / y
    x %= y x = x % y 模数

    3、字符串运算符

    运算符名称例子结果
    . 串接 $txt1 = “Hello” $txt2 = $txt1 . ” world!” 现在 $txt2 包含 “Hello world!”
    .= 串接赋值 $txt1 = “Hello” $txt1 .= ” world!” 现在 $txt1 包含 “Hello world!”

    4、递增/递减运算符

    运算符名称描述
    ++$x 前递增 $x 加一递增,然后返回 $x
    $x++ 后递增 返回 $x,然后 $x 加一递增
    –$x 前递减 $x 减一递减,然后返回 $x
    $x– 后递减 返回 $x,然后 $x 减一递减

    5、比较运算符

    运算符名称例子结果
    == 等于 $x == $y 如果$x 等于 $y,则返回 true。
    === 全等(完全相同) $x === $y 如果 $x 等于 $y,且它们类型相同,则返回 true。
    != 不等于 $x != $y 如果 $x 不等于 $y,则返回 true。
    <> 不等于 $x <> $y 如果 $x 不等于 $y,则返回 true。
    !== 不全等(完全不同) $x !== $y 如果 $x 不等于 $y,且它们类型不相同,则返回 true。
    > 大于 $x > $y 如果 $x 大于 $y,则返回 true。
    < 大于 $x < $y 如果 $x 小于 $y,则返回 true。
    >= 大于或等于 $x >= $y 如果 $x 大于或者等于 $y,则返回 true.
    <= 小于或等于 $x <= $y 如果 $x 小于或者等于 $y,则返回 true。

    6、逻辑运算符

    运算符名称例子结果
    and $x and $y 如果 $x 和 $y 都为 true,则返回 true。
    or $x or $y 如果$x 和$y 至少有一个为 true,则返回 true。
    xor 异或 $x xor $y 如果 $x 和 $y 有且仅有一个为 true,则返回 true。
    && $x && $y 如果 $x 和 $y 都为 true,则返回 true。
    || $x | $y 如果 $x 和 $y 至少有一个为 true,则返回 true。
    ! !$x 如果 $x 不为 true,则返回 true。

    7、数组运算符

    运算符名称例子结果
    + 联合 $x + $y $x 和 $y 的联合(但不覆盖重复的键)
    == 相等 $x == $y 如果 $x 和 $y 拥有相同的键/值对,则返回 true。
    === 全等 $x === $y 如果 $x 和 $y 拥有相同的键/值对,且顺序相同类型相同,则返回 true。
    != 不相等 $x != $y 如果 $x 不等于 $y,则返回 true。
    <> 不相等 $x <> $y 如果 $x 不等于 $y,则返回 true。
    !== 不全等 $x !== $y 如果 $x 与 $y 完全不同,则返回 true。

    PHP的基本语法(三)

    八、条件语句

    1、if 语句

    如果指定条件为真,则执行代码

    2、if…else 语句

    如果条件为 true,则执行代码;如果条件为 false,则执行另一端代码

    3、if…elseif….else 语句

    选择若干段代码块之一来执行

    $num=3;
    if($num>3)
    echo "$num>1";
    elseif($num==3)
    echo "$num=3";
    else
    echo "$num<3";

    运行结果:$num=3

    4、switch 语句

    有选择地执行若干代码块之一

    工作原理:

    • 对表达式(通常是变量)进行一次计算
    • 把表达式的值与结构中 case 的值进行比较
    • 如果存在匹配,则执行与 case 关联的代码
    • 代码执行后,break 语句阻止代码跳入下一个 case 中继续执行
    • 如果没有 case 为真,则使用 default 语句
    $x=4;
    switch ($x)
    {
    case 1:
      echo "Number 1";
      break;
    case 2:
      echo "Number 2";
      break;
    default:
      echo "No number between 1 and 2";
    }

    运行结果:No number between 1 and 2

    九、循环语句

    1、while

    只要指定条件为真,则循环代码块

    2、do…while

    先执行一次代码块,然后只要指定条件为真则重复循环

    3、for

    循环代码块指定次数

    4、foreach

    遍历数组中的每个元素并循环代码块

    <?PHP
    $its = array("Apple","Google","Microsoft","Solidot"); 
    
    foreach ($its as $it) {
      echo "$it <br>";
    }
    ?>

    运行结果: 
    Apple 
    Google 
    Microsoft 
    Solidot

    十、函数

    1、函数的类型

    函数是可以在程序中重复使用的语句块。 
    页面加载时函数不会立即执行。 
    函数只有在被调用时才会执行。

    • 内建函数:超过一千个内建函数
    • 自定义函数:以“function”关键字开头;函数名能够以字母或下划线开头(而非数字),对大小写不敏感,应该能够反映函数所执行的任务。

    2、函数的几个要素

    • PHP函数参数:参数被定义在函数名之后,括号内部。您可以添加任意多参数,只要用逗号隔开即可。
    • PHP函数默认参数:直接在参数后面赋值,当我们调用不含参数的函数时会自动赋予默认值。
    • PHP函数返回值:使用return语句返回值。
    <?php 
    
    function passwd($account,$password=123456){
    return $password;
    }
    
    $pLee = passwd("Lee");
    echo  "$pLee";
    
    ?>

    运行结果:123456

    十一、数组

    1、什么是数组?

    数组是特殊的变量,它可以同时保存一个以上的值。 
    数组能够在单一变量名中存储许多值,并且您能够通过引用下标号来访问某个值。

    2、三种数组类型

    • 索引数组 - 带有数字索引的数组
    • 关联数组 - 带有指定键的数组
    • 多维数组 - 包含一个或多个数组的数组

    3、用array()创建数组

    (1)、创建索引数组

    $its=array("Google","Apple","Microsoft");
    print_r($its);

    $its[0]="Google";
    $its[1]="Apple";
    $its[2]="Microsoft";
    print_r($its);

    运行结果:Array ( [0] => Google [1] => Apple [2] => Microsoft )

    (2)、创建关联数组

    $age=array("Peter"=>"20","Bill"=>"19","Ken"=>"21");
    print_r($age);

    $age["Peter"]="20";
    $age['Bill']="19";
    $age["Ken"]="21";
    print_r($age);

    运行结果:Array ( [Peter] => 20 [Bill] => 19 [Ken] => 21 )

    4、用count()获取数组长度

    $its=array("Google","Apple","Microsoft");
    $age=array("Peter"=>"20","Bill"=>"19","Ken"=>"21");
    echo count($its)."<br />";
    echo count($age);

    运行结果: 

    3

    5、用for和foreach遍历数组

    (1)、用for遍历索引数组

    $its=array("Google","Apple","Microsoft");
    for($i=0;$i<count($its);$i++){
        echo $its[$i]."<br />";
    }

    运行结果: 
    Google 
    Apple 
    Microsoft

    (2)、用foreach遍历关联数组

    $age=array("Peter"=>"20","Bill"=>"19","Ken"=>"21");
    foreach($age as $value){
    echo $value."<>";
    }

    运行结果: 
    20 
    19 
    21

    6、数组排序

    sort() - 以升序对数组排序 
    rsort() - 以降序对数组排序 
    asort() - 根据值,以升序对关联数组进行排序 
    ksort() - 根据键,以升序对关联数组进行排序 
    arsort() - 根据值,以降序对关联数组进行排序 
    krsort() - 根据键,以降序对关联数组进行排序

    如何记住它们?

    r—-reduce,减少 
    a—-value,值(不知道是不是,暂且这样记) 
    k—-key,键

    $age=array("Peter"=>"20","Bill"=>"19","Ken"=>"21");
    foreach($age as $value){
    echo $value."<br />";
    }
    arsort($age);
    foreach($age as $value){
    echo $value."<br />";
    }

    运行结果: 
    20 
    19 
    21 
    21 
    20 
    19

    一、GET和POST的联系和区别

    1、GET和POST的联系

    • GET 和 POST 都创建数组(例如,array( key => value, key2 => value2, key3 => value3, …))。此数组包含键/值对,其中的键是表单控件的名称,而值是来自用户的输入数据。
    • GET 和 POST 被视作 $_GET 和 $_POST。它们是超全局变量,这意味着对它们的访问无需考虑作用域 - 无需任何特殊代码,您能够从任何函数、类或文件访问它们。

    2、GET和POST的区别

    • $_GET 是通过 URL 参数传递到当前脚本的变量数组。
    • $_POST 是通过 HTTP POST 传递到当前脚本的变量数组。

    二、GET和POST的使用

    1、何时使用?

    • GET使用情景:对任何人可见的非敏感数据,限制在2000个字符,显示在URL中;
    • POST使用情景:对其他人不可见,字符数量无限制,嵌入http请求主体,支持高阶功能。

    2、怎么使用?

    • 使用GET
    <!DOCTYPE html>
    <html>
    <body>
    
    <a href="<?php echo $_SERVER['PHP_SELF']?>?keyword=Google&position=China">搜索</a>
    
    </body>
    </html>
    
    <?php
    echo "You search ".$_GET['keyword']." in ".$_GET['position'];
    ?>
    • 使用POST
    <!DOCTYPE html>
    <html>
    <body>
    
    <form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
    Name:<input type="text" name="name">
    <input type="submit">
    </form>
    
    </body>
    </html>
    
    <?php
    $name= $_POST['name'];
    echo $name;
    ?>

    一、date()函数

    string date ( string $format [, int $timestamp ] ) 
    作用:将时间戳格式化为易读的时间和日期。

    参数描述
    format 必需。规定时间戳的格式。
    timestamp 可选。规定时间戳。默认是当前时间和日期。

    1、获取日期

    (1)、年

    format格式说明例子
    L 是否为闰年 如果是闰年为 1,否则为 0
    o ISO-8601 格式年份数字。这和 Y 的值相同,只除了如果 ISO 的星期数(W)属于前一年或下一年,则用那一年。(PHP 5.1.0 新加) Examples: 1999 or 2003
    Y 4 位数字完整表示的年份 例如:1999 或 2003
    y 2 位数字表示的年份 例如:99 或 03

    (2)、月

    format格式说明例子
    F 月份,完整的文本格式,例如 January 或者 March January 到 December
    m 数字表示的月份,有前导零 01 到 12
    M 三个字母缩写表示的月份 Jan 到 Dec
    n 数字表示的月份,没有前导零 1 到 12
    t 给定月份所应有的天数 28 到 31

    (3)、日

    format格式说明例子
    d 月份中的第几天,有前导零的 2 位数字 01 到 31
    D 星期中的第几天,文本表示,3 个字母 Mon 到 Sun
    j 月份中的第几天,没有前导零 1 到 31
    l(“L”的小写字母) 星期几,完整的文本格式 Sunday 到 Saturday
    N ISO-8601 格式数字表示的星期中的第几天(PHP 5.1.0 新加) 1(表示星期一)到 7(表示星期天)
    S 每月天数后面的英文后缀,2 个字符 st,nd,rd 或者 th。可以和 j 一起用
    w 星期中的第几天,数字表示 0(表示星期天)到 6(表示星期六)
    z 年份中的第几天 0 到 365

    (4)、星期

    format格式说明例子
    W ISO-8601 格式年份中的第几周,每周从星期一开始(PHP 4.1.0 新加的) 例如:42(当年的第 42 周)

    2、获取时间

    (1)、时间

    format格式说明例子
    a 小写的上午和下午值 am 或 pm
    A 大写的上午和下午值 AM 或 PM
    B Swatch Internet 标准时 000 到 999
    g 小时,12 小时格式,没有前导零 1 到 12
    G 小时,24 小时格式,没有前导零 0 到 23
    h 小时,12 小时格式,有前导零 01 到 12
    H 小时,24 小时格式,有前导零 00 到 23
    i 有前导零的分钟数 00 到 59>
    s 秒数,有前导零 00 到 59>
    u 毫秒 (PHP 5.2.2 新加)。需要注意的是 date() 函数总是返回 000000 因为它只接受 integer 参数, 而 DateTime::format() 才支持毫秒。 示例: 654321

    (2)、时区

    format格式说明例子
    e 时区标识(PHP 5.1.0 新加) 例如:UTC,GMT,Atlantic/Azores
    I 是否为夏令时 如果是夏令时为 1,否则为 0
    O 与格林威治时间相差的小时数 例如:+0200
    P 与格林威治时间(GMT)的差别,小时和分钟之间有冒号分隔(PHP 5.1.3 新加) 例如:+02:00
    T 本机所在的时区 例如:EST,MDT(【译者注】在 Windows 下为完整文本格式,例如“Eastern Standard Time”,中文版会显示“中国标准时间”)。
    Z 时差偏移量的秒数。UTC 西边的时区偏移量总是负的,UTC 东边的时区偏移量总是正的。 -43200 到 43200

    二、mktime()函数

    mktime(hour,minute,second,month,day,year) 
    作用:根据给出的参数返回Unix时间戳。 
    时间戳是一个长整数,包含了从 Unix 纪元(January 1 1970 00:00:00 GMT)到给定时间的秒数。

    三、strtotime()函数

    int strtotime ( string $time [, int $now = time() ] ) 
    作用:将任何英文文本的日期时间描述解析为 Unix 时间戳 
    time:日期/时间字符串。正确格式的说明详见 日期与时间格式。 
    now:用来计算返回值的时间戳。

    备注:修改时区获取本地时间

    1. 修改PHP.ini文件中date.timezone字段 
      去掉前面的分号,在后面加上PRC(北京时间),然后重启appache
    2. 在代码中初始化时间 date_default_timezone_set (XXX)
    3. 另外:关于XXX,大陆内地可用的值是:Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi (依次为重庆,上海,乌鲁木齐) 
      港台地区可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次为澳门,香港,台北)。还有新加坡:Asia/Singapore。 
      其他可用的值是:Etc/GMT-8 ,Singapore ,Hongkong ,PRC

    四、奉上我学完这个之后做的一个简单的日历:


    <html>
    <head>
    <!--<meta http-equiv="refresh" content="3">-->
    </head>
    <body>
    
    <table cellpadding="10">
    <tr>
    <td>Sun</td><td>Mon</td><td>Tue</td><td>Wed</td><td>Thu</td><td>Fri</td><td>Sat</td>
    </tr>
    <?php
    #显示一张日历
    $SATNUM=0;
    $MONTH=date("m");
    echo "<tr>";
    for($i=0;$i<date("w",strtotime("2015/$MONTH/01"));$i++){
        echo "<td></td>";
    }
    for($j=0,$i=date("w",strtotime("2015/$MONTH/01"));$i<=6;$i++,$j++){
        $tmp=01+$j;
        $GLOBALS['SATNUM']=$tmp;
        echo "<td>$tmp</td>";
    }
    echo "</tr>";
    
    for($j=0;$j<4;$j++){
        echo "<tr>";
        for($i=0;$i<7;$i++){
            $tmp=++$GLOBALS['SATNUM'];
            if($tmp==date("d"))
                echo "<td bgcolor=blue>$tmp</td>";
            elseif(!($tmp>date("t")))
                echo "<td>$tmp</td>";
        }
        echo "</tr>";
    }
    ?>
    
    <?php 
    #确定星期几
    $week="";
    switch(date("w")){
    case 0:$week="星期天";break;
    case 1:$week="星期一";break;
    case 2:$week="星期二";break;
    case 3:$week="星期三";break;
    case 4:$week="星期四";break;
    case 5:$week="星期五";break;
    case 6:$week="星期六";break;
    }
    #动态显示当前时间
    echo "现在时间是:".date("Y年m月d日$week h时i分s秒");
    echo "<br />";
    ?>
    </body>
    </html>




    一、有什么用?

    服务器端包含 (Server Side Include,SSI) 用于创建可在多个页面重复使用的函数、页眉、页脚或元素。包含文件重用了文件,省去了许多工作。

    二、怎么用?

    include ‘filename’; 
    或 
    require ‘filename’;


    1.php

    <?php
    echo "Hello ";
    include '2.php';
    ?>

    2.php

    <?php
    echo "World.";
    ?>

    在浏览器访问1.php会得到(注意此时1.php和2.php是放在同一个文件夹里的):Hello World.

    三、include跟require有什么区别?

    在错误处理方面: 
    require 会生成致命错误(E_COMPILE_ERROR)并停止脚本 
    include 只生成警告(E_WARNING),并且脚本会继续


    请在此时使用: 
    请在此时使用 require:当文件被应用程序请求时。 
    请在此时使用 include:当文件不是必需的,且应用程序在文件未找到时应该继续运行时。

     

    PHP中对文件的操作:创建、读取、上传、编辑。 PHP提过了多种相关的函数。

    1、readfile()

    int readfile ( string $filename [, bool $use_include_path = false [, resource $context ]] )

    参数:

    1. filename:文件名;
    2. use_include_path:是否也在include_path中搜索文件;
    3. context:规定文件句柄的环境。Context 是可以修改流的行为的一套选项。

    返回值:返回从文件中读入的字节数。如果出错返回 FALSE 并且除非是以 @readfile() 形式调用,否则会显示错误信息。 
    示例: 
    1.php和new.txt在同一个文件夹

    1.php内容:

    <?php
    echo @readfile("new.txt");
    ?>

    new.txt内容:

    It's a new file.

    运行1.php结果:

    It's a new file.16

    2、fopen()

    resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )

    参数:

    1. filename:如果 filename 是 “scheme://…” 的格式,则被当成一个 URL,PHP 将搜索协议处理器(也被称为封装协议)来处理此模式。如果该协议尚未注册封装协议,PHP 将发出一条消息来帮助检查脚本中潜在的问题并将 filename 当成一个普通的文件名继续执行下去。;
    2. mode:指定了所要求到该流的访问类型;
    3. use_include_path:是否也在include_path中搜索文件;
    4. context:规定文件句柄的环境。Context 是可以修改流的行为的一套选项。

    返回值: 
    成功时返回文件指针资源,如果打开失败,本函数返回 FALSE。 
    注:文件访问类型表

    mode说明
    “r” 只读方式打开,将文件指针指向文件头
    “r+” 读写方式打开,将文件指针指向文件头
    “w” 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
    “w+” 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
    “a” 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
    “a+” 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
    “x” 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给底层的 open(2) 系统调用指定 O_EXCL
    “x+” 创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给底层的 open(2) 系统调用指定 O_EXCL

    3、fread()

    string fread ( resource $handle , int $length ) 
    从文件指针 handle 读取最多 length 个字节

    参数:

    1. head:文件系统指针,是典型地由 fopen() 创建的 resource(资源);
    2. length:最多读取 length 个字节。

    返回值: 
    返回所读取的字符串, 或者在失败时返回 FALSE。

    4、fclose()

    bool fclose ( resource $handle ) 
    将指定文件关闭(好习惯,减少服务器资源占用)。文件指针必须有效,并且是通过 fopen() 或 fsockopen() 成功打开的。

    5、fgets()

    string fgets ( resource $handle [, int $length ] ) 
    从文件中读取一行数据。从 handle 指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。

    6、feof()

    bool feof ( resource $handle ) 
    测试文件指针是否到了文件结束的位置。

    7、fgetc()

    string fgetc ( resource $handle ) 
    从文件中读取单个字符。

    8、fwrite()

    int fwrite ( resource $handle , string $string [, int $length ] )

    参数:

    1. handle:文件系统指针,是典型地由 fopen() 创建的 resource(资源);
    2. string:要写入的字符串;
    3. length:如果指定了 length,当写入了 length 个字节或者写完了 string 以后,写入就会停止,视乎先碰到哪种情况。

    返回值: 
    fwrite() 返回写入的字符数,出现错误时则返回 FALSE 。

    9、一个超级简单的评论墙

    <html>
    <head>
    <title>评论墙</title>
    </head>
    <body>
    <!--评论表单-->
    <form method="post"  action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'])?>">
    昵称:<input type="text" name="name"></input>
    <br />
    评论:<textarea rows='5' cols='19' name="comment"></textarea>
    <br />
    <input type="submit" name="submit" value="提交">
    </form>
    <!--保存评论到文件-->
    <?php
    /**
    文件的读写测试
    */
    if($_SERVER['REQUEST_METHOD']=='POST'){
    #打开文件
    $fname="D:\comment.txt";
    $file=fopen($fname,"a+");
    #写入数据
    $name=@$_POST['name'];
    $comment=@$_POST['comment'];
    $str=$name."`".$comment."
    ";
    fwrite($file,$str);
    #关闭文件
    fclose($file);
    }
    ?>
    <!--显示评论内容-->
    <table cellpadding="4" >
    <tr>
    <td><b>昵称</b></td>
    <td><b>评论</b></td>
    </tr>
    <?php
    $fname="D:\comment.txt";
    $file=fopen($fname,"r");
    while(!feof($file)){
        $line=fgets($file);
        $arr=explode("`",$line);
        echo @"<tr><td>$arr[0]</td><td>$arr[1]</td></tr>";
    }
    fclose($file);
    ?>
    </table>
    
    </body>
    </html>

    一、什么是Cookies?

    Cookie 常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。如果你的浏览器不支持Cookies,那就只好用表单传递数据了。 
    点击查看维基百科关于Cookies的解释。

    二、创建Cookies

    setcookie(name, value, expire, path, domain); 
    用于设置Cookie,必须位于 < html > 标签之前。

    参数:

    • name:设置Cookies的名字;
    • value:Cookies的值,存储在客户机上,不要存放敏感信息,假定Cookies名为“cookiesname”则值为$_COOKIES[‘cookiesname’]。
    • expire:Cookies的到期时间,这是一个时间戳(以秒为单位)。默认为会话结束(浏览器关闭)就到期。一般使用time()函数加上秒数,表示多少秒后到期。
    • path:设置Cookies在服务器上的可用目录,默认为当前目录。
    • domain:设置Cookies可用的域名。

    返回值:

    如果在调用这个函数之前有输出,将会返回false;如果函数正常执行将会返回true。这并不能表示用户是否接受Cookies。

    注:

    在发送 cookie 时,cookie 的值会自动进行 URL 编码,在取回时进行自动解码。(为防止 URL 编码,请使用 setrawcookie() 取而代之。)

    三、取回Cookies

    $_COOKIES[‘cookiesname’]用于取回Cookies的值。在这之前最好用isset()函数判断是否设置了Cookies

    四、删除Cookies

    删除Cookies只需要用setcookie()函数,将参数中的expire设置为过去的时间即可。

    五、Cookies的一个小测试

    1. 新建1.php

    <?php 
    setcookie("ip","192.168.1.1",time()+86400);
    echo '已设置Cookies:ip';
    ?>

    2. 新建2.php

    <?php 
    if(isset($_COOKIE["ip"])){
        echo '已取得Cookies:ip---->'.$_COOKIE['ip']."<br />";
        setcookie("ip","",time()-300);
        echo "已删除Cookies:ip.";
    }
    ?>

    3、打开浏览器输入:localhost/1.php

    输出结果: 
    已设置Cookies:ip

    4、关闭再打开浏览器,输入:localhost/2.php

    输出结果: 
    已取得Cookies:ip---->192.168.1.1 
    已删除Cookies:ip.

    5、在步骤4的基础上刷新页面

    没有输出。

  • 相关阅读:
    hdu 5446 Unknown Treasure lucas和CRT
    Hdu 5444 Elven Postman dfs
    hdu 5443 The Water Problem 线段树
    hdu 5442 Favorite Donut 后缀数组
    hdu 5441 Travel 离线带权并查集
    hdu 5438 Ponds 拓扑排序
    hdu 5437 Alisha’s Party 优先队列
    HDU 5433 Xiao Ming climbing dp
    hdu 5432 Pyramid Split 二分
    Codeforces Round #319 (Div. 1) B. Invariance of Tree 构造
  • 原文地址:https://www.cnblogs.com/mingjing/p/8205098.html
Copyright © 2011-2022 走看看