• PHP高级教程


    文件读写

    fopen(filedir,operate);

    operate:r、r+、w、w+、x、x+  分别为可读、读写、写、读写、    (写、读写)后面两个如果文件已经存在则返回false和错误

    a 追加 a+ 读追加

    fclose关闭文件

    feof检测是否到达文件末尾

    fgets 逐行读取

    fgetc逐字符读取

    例子:

    <?php
    $file = fopen("1.txt", "r") or exit("无法打开文件!");
    // 读取文件每一行,直到文件结尾
    while(!feof($file))
    {
        echo fgets($file). "<br>";
        echo fgetc($file);
    }
    fclose($file);
    ?>

    还有以下函数:

    basename()  返回路径中的文件名部分。

    chgrp()   改变文件组。

    chmod()  改变文件模式。

    chown()  改变文件所有者。

    copy() 复制文件。

    delete()  参见 unlink() 或 unset();

    dirname()   返回路径中的目录名称部分。

    等等

    如果打开一个文件,文件名为中文,如果系统编程和当前文档编码不一致,会导致文件找不到无法打开,解决方法是用 iconv 函数编码转换成一致,如下:

    $fpath=iconv('UTF-8','GB2312',"题库.csv");
    $file=fopen($fpath,"r") or exit("无法打开文件!");
    //此处省略相关操作
    fclose($file);

    文件上传

    代码摘要

    <form action="upload_file.php" method="post" enctype="multipart/form-data">
        <label for="file">文件名:</label>
        <input type="file" name="file" id="file"><br>
        <input type="submit" name="submit" value="提交">
    </form>

    php脚本

    if ($_FILES["file"]["error"] > 0)
    {
        echo "错误:" . $_FILES["file"]["error"] . "<br>";
    }
    else
    {
        echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";
        echo "文件类型: " . $_FILES["file"]["type"] . "<br>";
        echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
        echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"];
    }

    第一个参数是表单的 input name,第二个下标可以是 "name"、"type"、"size"、"tmp_name" 或 "error"。

    限制文件类型

    $allowedExts = array("gif", "jpeg", "jpg", "png");
    $temp = explode(".", $_FILES["file"]["name"]);
    $extension = end($temp);        // 获取文件后缀名
    if ((($_FILES["file"]["type"] == "image/gif")
    || ($_FILES["file"]["type"] == "image/jpeg")
    || ($_FILES["file"]["type"] == "image/jpg")
    || ($_FILES["file"]["type"] == "image/pjpeg")
    || ($_FILES["file"]["type"] == "image/x-png")
    || ($_FILES["file"]["type"] == "image/png"))
    && ($_FILES["file"]["size"] < 204800)    // 小于 200 kb
    && in_array($extension, $allowedExts))

    上传文件 

     if (file_exists("upload/" . $_FILES["file"]["name"]))
            {
                echo $_FILES["file"]["name"] . " 文件已经存在。 ";
            }
            else
            {
                // 如果 upload 目录不存在该文件则将文件上传到 upload 目录下
                move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);
                echo "文件存储在: " . "upload/" . $_FILES["file"]["name"];
            }

    cookie

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

    cookie值保存在浏览器

    setcookie() 函数用于设置 cookie。

    注释:setcookie() 函数必须位于 <html> 标签之前。

    在下面的例子中,我们将创建名为 "user" 的 cookie,并为它赋值 "runoob"。我们也规定了此 cookie 在一小时后过期:

    <?php
    setcookie("user", "runoob", time()+3600);
    ?>
    
    <html>
    .....

    在发送 cookie 时,cookie 的值会自动进行 URL 编码,在取回时进行自动解码

    PHP 的 $_COOKIE 变量用于取回 cookie 的值。

    在下面的实例中,我们取回了名为 "user" 的 cookie 的值,并把它显示在了页面上:

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

    if (isset($_COOKIE["user"]))
        echo "欢迎 " . $_COOKIE["user"] . "!<br>";
    else
        echo "普通访客!<br>";

    当删除 cookie 时,您应当使过期日期变更为过去的时间点。

    删除的实例:

    <?php
    // 设置 cookie 过期时间为过去 1 小时
    setcookie("user", "", time()-3600);
    ?>

    session

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

    会话信息是临时的,在用户离开网站后将被删除。如果您需要永久存储信息,可以把数据存储在数据库中。

    Session 的工作机制是:为每个访客创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,或者通过 URL 进行传导

    在您把用户信息存储到 PHP session 中之前,首先必须启动会话。

    <?php session_start(); ?>

    $_SESSION['views']=1; 赋值

    unset($_SESSION['views']); 销毁 

    您也可以通过调用 session_destroy() 函数彻底销毁 session:

    Error

    默认的错误处理很简单。一条错误消息会被发送到浏览器,这条消息带有文件名、行号以及描述错误的消息

    我们将为您讲解不同的错误处理方法:

    • 简单的 "die()" 语句
    • 自定义错误和错误触发器
    • 错误报告
  • 相关阅读:
    Java 中队列的使用
    数据挖掘十大经典算法
    数据结构之图(术语、存储结构、遍历)
    openldap---ldapsearch使用
    RDBMS 数据库补丁集补丁号码高速參考-文档 ID 1577380.1
    关于 ioctl 的 FIONREAD 參数
    Oracle 事务的開始与结束
    泛泰A880S升级官方4.4.2 binx教程
    设计模式18---设计模式之策略模式(Strategy)(行为型)
    java实现矩形区域的交和并
  • 原文地址:https://www.cnblogs.com/webcyh/p/11272002.html
Copyright © 2020-2023  润新知