zoukankan      html  css  js  c++  java
  • w3school的PHP教程提炼(二)PHP高级

    w3school的PHP教程提炼(二)PHP高级

     

    1 Date()

    1.1 Date()函数

    语法:date(format,timestamp)

    format:必需。规定时间戳的格式。

    timestamp:可选。规定时间戳。默认是当前的日期和时间。

    1.2 时间戳(Timestamp)

    自1970.1.1(00:00:00GMT)以来的秒数

    1.3 格式化日期

    date()函数的format参数规定了如何格式化日期/时间

    d:月中的天(01-31)

    m:当前的月,以数字计(01-12)

    Y:当前的年(四位数)

    <?php
    echodate("Y/m/d");
    echo"<br />";
    echodate("Y-m-d");
    ?>

    1.4 添加时间戳

    date()函数的timestamp参数规定了一个时间戳

    1.5 mktime()函数

    mktime()函数可为指定的日期返回Unix时间戳

    语法:mktime(hour,minute,second,month,day,year,is_dst)

    <?php
    $tomorrow=mktime(0,0,0,date("m"),date("d")+1,date("Y"));
    echo"Tomorrow is".date("Y/m/d",$tomorrow);
    ?>

    2 引用文件

    2.1 include()函数

    <?php include("header.php"); ?>

    2.2 require()函数

    和include()的错误处理方式不同:include()函数会生成一个警告(但是脚本会继续执行),而require()函数会生成一个致命错误(fatal error)(在错误发生后脚本会停止执行)

     

    3 文件处理

    3.1 打开文件 fopen()函数

    <?php
    $file=fopen("welcome.txt","r");
    ?>

    第一个参数含有要打开的文件的名称

    第二个参数规定了使用哪种模式来打开文件

    模式

    描述

    r

    只读。在文件的开头开始。

    r+

    读/写。在文件的开头开始。

    w

    只写。打开并清空文件的内容;如果文件不存在则创建新文件

    w+

    读/写。打开并清空文件的内容;如果文件不存在则创建新文件

    a

    追加。打开并向文件末端进行写操作,如果文件不存在则创建新文件

    a+

    读/追加。通过向文件末端写内容,来保持文件内容

    x

    只写。创建新文件。如果文件已存在则返回false

    x+

    读/写。创建新文件。如果文件已存在,则返回false和一个错误。如果fopen()无法打开指定文件,则返回0(false)

    3.2 关闭文件 fclose()函数

    <?php
    $file=fopen("test.txt","r");
    //...
    fclose($file);
    ?>

    3.3 检测End-of-file feof()函数

    <?php
    if(feof($file)){
    echo"End of file";
    }
    ?>

    3.4 逐行读取文件 fgets()函数

    在调用该函数之后,文件指针会移动到下一行

    <?php
    $file=fopen("welcome.txt","r") or exit("Unable to open file!");
    while(!feof($file)){
    echofgets($file) ."<br />";
    }
    fclose($file);
    ?>

    3.5 逐字符读取文件 fgetc()函数

    在调用该函数之后,文件指针会移动到下一个字符

    <?php
    $file=fopen("welcome.txt","r") or exit("Unable to open file!");
    while(!feof($file)){
    echofgetc($file);
    }
    fclose($file);
    ?>

    4 文件上传
    4.1 创建表单

    <?php
    $file=fopen("welcome.txt","r") or exit("Unable to open file!");
    while(!feof($file)){
    echofgetc($file);
    }
    fclose($file);
    ?>

    4.2 上传脚本 全局数组$_FILES

    <?php
    if($_FILES["file"]["error"] >0){
    echo"Error: ".$_FILES["file"]["error"] ."<br />";
    }
    else{
    echo"Upload: ".$_FILES["file"]["name"] ."<br />";
    echo"Type: ".$_FILES["file"]["type"] ."<br />";
    echo"Size: ". ($_FILES["file"]["size"] /1024) ." Kb<br />";
    echo"Stored in: ".$_FILES["file"]["tmp_name"];
    }
    ?>

    $_FILES数组的第一个参数是表单的input name,第二个下标可以是:

    name:被上传文件的名称

    type:被上传文件的类型

    size:被上传文件的大小

    tmp_name:存储在服务器的文件的临时副本的名称

    error:由文件上传导致的错误代码

    4.3 上传限制

    限制上传.gif或者.jpeg文件,文件大小必须小于20kb:

    <?php
    if((($_FILES["file"]["type"] =="images/gif"
     ||$_FILES["file"]["type"] =="images/jpeg"
     ||$_FILES["file"]["type"] =="images/pjpeg"))
    && ($_FILES["file"]["size"] <20000)){ //IE识别jpg为pjpeg,FF识别jpg为jpeg
    if($_FILES["file"]["error"] >0){
    echo"Error: ".$_FILES["file"]["error"] ."<br />";
    }
    else{
    echo"Upload: ".$_FILES["file"]["name"] ."<br />";
    echo"Type: ".$_FILES["file"]["type"] ."<br />";
    echo"Size: ". ($_FILES["file"]["size"] /1024) ." Kb<br />";
    echo"Stored in: ".$_FILES["file"]["tmp_name"];
    }
    else{
    echo"Invalid file";
    }
    }
    ?>

    4.4  保存被上传的文件

    将上面例子在临时文件夹创建的被上传文件的临时副本拷贝到另外的位置以免其在脚本结束时消失

    <?php
    if((($_FILES["file"]["type"] =="images/gif"
     ||$_FILES["file"]["type"] =="images/jpeg"
     ||$_FILES["file"]["type"] =="images/pjpeg"))
    && ($_FILES["file"]["size"] <20000)){ //IE识别jpg为pjpeg,FF识别jpg为jpeg
    if($_FILES["file"]["error"] >0){
    echo"Error: ".$_FILES["file"]["error"] ."<br />";
    }
    else{
    echo"Upload: ".$_FILES["file"]["name"] ."<br />";
    echo"Type: ".$_FILES["file"]["type"] ."<br />";
    echo"Size: ". ($_FILES["file"]["size"] /1024) ." Kb<br />";
    echo"Temp file: ".$_FILES["file"]["tmp_name"] ."<br />";
    if(file_exists("upload/".$_FILES["file"]["name"])){
    echo$_FILES["file"]["name"] ."already exists. ";
    }
    else{
    move_uploaded_file($_FILES["file"]["tmp_name"],"upload/".$_FILES["file"]["name"]);
    echo"Stored in: "."upload/".$_FILES["file"]["name"];
    }
    }
    }
    else{
    echo"Invalid file";
    }
    ?>

    5 Cookies
    5.1 创建cookie setcookie()函数

    语法:setcookie(name, value, expire, path, domain);

    <?php
    setcookie("user","Alex Porter",time()+3600);
    //创建名为"user"的cookie,赋值为Alex Porter,1小时后过期
    ?>

    5.2 取回cookie的值

    <?php
    echo$_COOKIE["user"]; //print a cookie
    print_r($_COOKIE); //a way to view all cookies
    ?>

    使用isset()函数来确认是否已设置了cookie:

    <?php
    if(isset($_COOKIE["user"])){
    echo"Welcome ".$_COOKIE["user"] ."!<br />";
    }
    else{
    echo"Welcome guest!<br />";
    }
    ?>

    5.3 删除cookie

    <?php
    setcookie("user","",time()-3600); //使过期日期变更为过去的时间点
    ?>

    6 Session变量
    6.1 启动session会话

    <?php session_start(); ?><!--该函数必须位于html标签之前-->
    <html>
    </html>

    6.2 存储session变量

    <?php
    session_start();
    $_SESSION["views"]=1; //store session data
    ?>
    <html>
    <body>
    <?php
    echo"Pageviews=".$_SESSION['views']; //print Pageviews=1
    ?>
    </body>
    </html>

    6.3 终结session

    <?php
    unset($_SESSION['views']); //释放指定的session变量
    ?>
    <?php
    session_destroy(); //彻底终结session
    ?>

    7 mail()函数 用于从脚本中发送电子邮件。
    语法:mail(to, subject, message, headers, parameters)

    参数

    描述

    to

    必需。规定email接收者。

    subject

    必需。规定email的主题。注释:该参数不能包含任何新行字符。

    message

    必需。定义要发送的信息。应使用LF(\n)来分隔各行。

    headers

    可选。规定附加的标题,比如From、Cc以及Bcc。应当使用过CRLF(\r\n)分隔附加的标题。

    parameters

    可选。对邮件发送程序规定额外的参数。

    7.1 范例

    <?php
    $to="someone@example.com";
    $subject="Test mail";
    $message="Hello!This is a simple email message.";
    $from="someoneelse@example.com";
    $headers="From: $from";
    mail($to,$subject,$message,$headers);
    echo"Mail Sent.";
    ?>
  • 相关阅读:
    获取屏幕的大小
    ../ ./ ~/三者的区别
    C#在splitContainer1控件和panel控件中显示窗体
    C# 后台动态添加标签(span,div) 以及模板添加
    input text文本框内部最后面放一个按钮
    dubbo常见异常及解决方式
    [LeetCode] 206. Reverse Linked List ☆(反转链表)
    [LeetCode] 328. Odd Even Linked List ☆☆☆(奇偶节点分别放一起)
    [LeetCode] 283. Move Zeroes ☆(移动0到最后)
    [LeetCode] 219. Contains Duplicate II ☆(存在重复元素2)
  • 原文地址:https://www.cnblogs.com/bienfantaisie/p/1900458.html
Copyright © 2011-2022 走看看