zoukankan      html  css  js  c++  java
  • PHP从入门到精通——读书笔记(第7—10章:数组、与Web交互、日期时间等)

    第七章:PHP数组

    1:数组定义—— 数组array是一组有序的变量,其中每个变量被称为一个元素。每个元素由一个特殊的标识符来区分——称为键,也称为下标。数组中的每个实体都包含两项:键和值。

    2:数组声明—— array array([mixed ...]);  参数mixed的语法为key=>value。多个参数用逗号分开。分别定义了索引和值。注意:索引可以是字符串也可以是数字!!如果省略了索引,则会自动产生从0开始的整数索引。
    也可以不从0开始:$array=array("1"=>"编", "2"=>"程");

    3:数组的类型—— 索引数组(indexed array) 和联合数组 (associative array)。前者使用数组作为键,后者使用字符串作为键。

    关联数组——使用字符串索引或键 来访问储存在数组中的值(混合)

    4:输出数组—— bool print_r (mixed expression)

    5:数组的构造
    1)一维数组——数组的元素是变量
    2)二维数组——数组的元素是数组
    $str = array("书籍"=> array("文学","历史","地理"),
                       "体育用品"=>array("m"=>"足球", "n"=> "篮球"));

    6:数组的遍历
    1)foreach
    $arr = array('1'=>'http', '2'=>'www', '3'=>'google', '4'=>'com');
    foreach ( $arr as $link ){
        echo $link.'<br>';
    }
    在上面的代码中,php为$arr 的每一个元素依次执行循环体( each 语句)一次,将当前元素的值 赋值给$link。

    2)使用list() 函数遍历数组—— 把数组中的值赋给一些变量。与array() 函数类似,这不是真正的函数,而是语言结构。list()函数仅能用于数字索引的数组,且数字索引从0开始。
    语法: void list(mixed...) // 参数mixed 为被赋值的变量名称。
    //输出用户登录信息
    while( list ($name,$value) = each($_POST)){
            if ($name != "submit") {
        echo "$name=$value<br>";
    }}

    7:字符串与数组的转换
    1)使用explode()函数将字符串转换成数组
    2)使用implode()函数将数组转换成一个新字符串

    8:统计数组元素个数:
    int count ( mixed array [, int mode])
    说明:array:输入的数组(必选)。 mode:可选。 COUNT_RECURSIVE(或1)。如选中此参数,本函数将递归的对数组计算。对计算多维数组的所有单元尤其有用。默认为0
    $array = array('test1','test2','test3','test4');
    echo count($array); // 统计数组元素个数,输出为4

    9:查询数组中指定元素—— array_search() 函数: 在数组中搜索给定的值,找到后返回键名,否则返回false。
    mixed array_search (mixed needle, array haystack [,bool strict])
    参数needle指定在数组中搜索的值,参数haystack指定被搜索的数组,参数strict如果为true,还将在数组中检查给定值的类型。返回的是键名!

    10:获取数组中最后一个元素—— array_pop() 获取并返回数组的最后一个单元,并将数组长度-1,如果数组为空(或非数组)则返回null

    11:向数组中添加元素—— array_push() 函数将数组当成一个栈,将传入的变量压入该数组的末尾。返回数组新的单元总数。

    12:删除数组中重复元素—— array_unique() 函数:将值作为字符串排序,然后对每个值只保留第一个键名,忽略所有后面的键名,即删除数组中重复的元素

    第八章: PHP与WEB页面交互

    1:PHP参数传递常用的方法有3种:$_POST[]、$_GET[]、 $_SESSION[],分别用于获取表单、URL和Session变量的值

    1)$_POST[]全局变量—— $user = $_POST["user"] ($_GET[]、 $_SESSION[])
    说明:可以直接写$user即可调用表单元素的值,需要将php.ini的register_globals= ON/OFF设置为ON,但是又安全隐患

    2)对表单元素value属性进行赋值
    $hidden = "value";
    <input type="hidden" name="ID" value="<?php echo $hidden; ?>"

    <input name="submit"  ..../>
    if ($_POST["submit"] == "登录"){.....}

    3)获取复选框的值

    <input type="checkbox" name="mrbook[]" value="入门类">入门类<input type="checkbox" name="mrbook[]" value="案例类"> 案例类<input type="checkbox" name="mrbook[]" value="讲解类">讲解类

    if(($_POST[mrbook]!= null)){
        echo "您选择的结果是:";
        for($i = 0;$i<count($_POST[mrbook]);$i++)
        echo $_POST[mrbook][$i]."&nbsp;&nbsp;"; //循环输出用户选择的图书类别
    }

    4)获取列表框的值—— 当<select>标记设置了 multiple 属性,则为菜单列表框,可以选择多个条件
    <input type ="checkbox" name = "checkbox[]" multiple>

    <select name="select[]" size="5" multiple>
    <option value="PHP数据库系统开发完全手册">PHP数据库系统开发完全手册</option><option value="PHP编程宝典">PHP编程宝典</option></select>

    if($_POST[select] != "") //响应表单事件,返回多选列表框的值
      echo "你选择的图书是:<br>";
      for($i = 0; $i < count($_POST[select]); $i++)
        echo $_POST[select][$i]."&nbsp;&nbsp";

    5)获取文件域的值(文件上传)—— <input type="file" name="file" size="15" > => $_POST[file]

    6)URL参数编码解码——urlencode、urldecode

    第九章:PHP与Javascript交互

    第十章:日期和时间

    1:时区—— 整个地球分为24个时区,每个时区都有自己本地时间,同一时间,每个时区的本地时间相差1~23小时。在国际无线电通信领域,使用一个统一的时间,称为:通用协调时间(UTC, Universal Time Coordinated),UTC与格林威治时间(GMT,Greenwich Mean Time)相同,都与英国伦敦本地时间相同

    PHP5 默认设置的是标准的格林威治时间(即采用的是零时区)。更改PHP语言中的时区设置有两种方法:
    1)修改php.ini,找到[date]下的";date.timezone = "选项,将其修改为"date.timezone=Asia/Hong_Kong",重启Apache服务器
    2)在应用程序中,在使用时间日期函数之前添加如下函数: date_default_timezone_set(timezone);参数timezone为时区名称。如我国为:PRC

    2:PHP日期和时间函数

    1)获取本地化时间戳—— mktime()函数:根据给出的参数返回UNIX时间戳。时间戳是一个长整数,包含了从UNIX纪元(1970年1月1日)到给定时间的秒数。其参数可以从右向左省略,省略的参数会被设置成本地日期和时间的当前值:
    int mktime(int hour, int minute, int second, int month, int day, int year, int [is_dst])
    注意:有效的时间戳范围是格林威治时间1901年12月31日20:45:54~2038年1月19日03:14:07(此范围符合32位有符号整数)。在windows系统中此范围限制为从1970年1月1日~2038年1月19日

    echo "mktime 函数返回的时间戳:".mktime()."<p>" //返回当前的时间戳。如
    echo "当前的日期为:".date("Y-m-d", mktime())."<p>"  //使用date函数输出格式化后的日期
    echo "当前的时间为:".date("H:i:s", mktime());  //使用date函数输出格式化后的时间

    2)获取当前时间戳—— time() 函数:获取当前的UNIX时间戳,返回值从UNIX纪元(格林威治时间1970年1月1日00:00:00)到当前时间的秒数
    $nextWeek = time() + (7*24*60*60) // 7 days,24 hours, 60 mins; 60 secs
    echo 'Now: '.date('Y-m-d')'."<p>";   //输出当前日期
    echo 'Next Week:'.date('Y-m-d', $nextWeek);  //输出变量NextWeek的日期

    3)获取当前日期和时间—— date() 函数: date(string format, int timestamp)  //date()函数返回参数timestamp按照指定格式而产生的字符串。timestamp可选,省略,使用当前时间。

    4)获取日期信息—— getdate() 函数: array getdate(int timestamp)
    $arr = getdate();
    echo "Date And Time is :".$datearr[year]."-".$datearr[mon]."-".$datearr[mday]." ".$datearr[hours].":".$datearr[minutes].":".$datearr[seconds]."<p>";

    5)检验日期的有效性—— checkdate()函数: bool checkdate(int month, int day, int year)

    6)输出格式化的日期和时间——date()函数的format参数控制

    7)显示本地化的日期和时间—— setlocale()函数、strftime()函数
    A:setlocale()函数——改变PHP默认的本地化环境: string setlocale(string category, string locale)

    参数locale如果为空,就会使用系统环境变量的locale或lang的值。locale:en_US为美国本地化环境,chs:简体中文,cht:繁体中文
    说明:如果是Windows平台用户,登录msdn来获取语言和国家(地区)的编码列表。如果是UNIX/Linux,则使用命令:locale-a

    B:strftime()函数——根据本地化环境设置类输出日期和时间
    string strftime(string format, int timestamp)—— 参数timestamp确定格式化后输出的字符串

    setlocale(LC_ALL,"en_US");
    echo "美国格式:".strftime("Today is %A");  // A表示星期的全称
    setlocale(LC_ALL,"chs");
    echo "中文简体格式:".strftime("今天是%A");

    8)将日期和时间解析为UNIX时间戳—— int strtotime(string time [,int now])
    该函数的time参数如果是绝对时间,则now不起作用。如果是相对时间,则其对应的时间就是参数now来提供的。
    注意:解析失败返回false
    strtotime()函数可将任何英文文本的日期和时间解析为UNIX时间戳,其值相对于now参数给出的时间,如果没有now则使用系统当前时间

    3:日期和时间的应用

    1)比较两个时间大小

    View Code
    //Compare two times
    $time1 = date("Y-m-d H:i:s"); //Get current time
    $time2 = "2012-12-27 18:10:10"; 
    echo $time1."<p>";
    echo $time2."<p>";
    if(strtotime($time1) - strtotime($time2) < 0){
        echo "\$time1 早于 \$time2";
    }else{
        echo "\$time2 早于 \$time1";
    }

    2)实现倒计时功能

    View Code
    //实现倒计时功能
    $time1 = strtotime(date("Y-m-d H:i:s"));
    $time2 = strtotime("2012-12-28 18:30:00");
    $time3 = strtotime("2013-01-01");
    
    $sub1 = ceil(($time2 - $time1) / 3600);
    $sub2 = ceil(($time3 - $time1) / 86400); // 60seconds * 60minutes * 24 hours
    
    echo "离周末还有<font color=red>$sub1</font>小时<p>";
    
    echo "离元旦还有".$sub2."天";

    3)计算页面脚本的运行时间—— 使用了 microtime() 函数,返回当前UNIX时间戳和微秒数。返回格式为 msec sec的字符串。其中sec是当前的UNIX时间戳,msec是微秒数
    语法: string microtime(void)

  • 相关阅读:
    浅析BIO、NIO、AIO
    equals()和hashCode()区别
    mysql分区
    java反射
    设计模式
    两个线程一个生产者个一个消费者
    Redis事务
    常用面试题
    springboot整合redis(注解形式)
    ElasticSearch6更新与重大变化
  • 原文地址:https://www.cnblogs.com/mumue/p/2831468.html
Copyright © 2011-2022 走看看