zoukankan      html  css  js  c++  java
  • 2017.7.25

    1、PHP包含/引用文件

    服务器端包含 (SSI) 用于创建可在多个页面重复使用的函数、页眉、页脚或元素。

    include (或 require)语句会获取指定文件中存在的所有文本/代码/标记,并复制到使用 include或 require 语句的文件中

    PHP include 和 require 语句

    通过 include 或 require 语句,可以将 PHP 文件的内容插入另一个 PHP 文件(在服务器执行它之前)。

    include 和 require 语句是相同的,除了错误处理方面:

    • require 会生成致命错误(E_COMPILE_ERROR)并停止脚本;当文件被应用程序请求时。
    • include 只生成警告(E_WARNING),并且脚本会继续执行;当文件不是必需的,且应用程序在文件未找到时应该继续运行时。

    因此,如果您希望继续执行,并向用户输出结果,即使包含文件已丢失,那么请使用 include

    否则,在框架、CMS 或者复杂的 PHP 应用程序编程中,请始终使用 require 向执行流引用关键文件。这有助于提高应用程序的安全性和完整性,在某个关键文件意外丢失的情况下。

    包含文件省去了大量的工作。这意味着您可以为所有页面创建标准页头、页脚或者菜单文件。然后,在页头需要更新时,您只需更新这个页头包含文件即可。

    语法:include 'filename'; 或 require 'filename';

    语法:include_once 'filename'; 或 require_once 'filename';//加上once不会重复引用

    例子 

    假设我们有一个名为 "vars.php" 的文件,其中定义了一些变量:

    <?php
    $color='银色的';
    $car='奔驰轿车';
    ?>

    然后,如果我们引用这个 "vars.php" 文件,就可以在调用文件中使用这些变量:

    <?php
    include 'vars.php';//引用路径为相对路径:如果在同一个文件夹下,则可直接引用,如本例
    echo "我有一辆" . $color . $car "。";
    ?>

    2、PHP文件处理


    fopen() 函数用于在 PHP 中打开文件。注释:如果 fopen() 函数无法打开指定文件,则返回 0 (false)


    打开文件

    fopen() 函数用于在 PHP 中打开文件。

    此函数的第一个参数含有要打开的文件的名称,第二个参数规定了使用哪种模式来打开文件:

    <html>
    <body>
    
    <?php
    $file=fopen("welcome.txt","r");//文件名,打开模式
    ?>
    
    </body>
    </html>

    文件可能通过下列模式来打开:#+带有加号表示,同时拥有了读写功能

    模式描述
    r 只读。在文件的开头开始。
    r+ 读/写。在文件的开头开始。
    w 只写。打开并清空文件的内容;如果文件不存在,则创建新文件。
    w+ 读/写。打开并清空文件的内容;如果文件不存在,则创建新文件。
    a 追加。打开并向文件末尾进行写操作,如果文件不存在,则创建新文件。
    a+ 读/追加。通过向文件末尾写内容,来保持文件内容。
    x 只写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。
    x+ 读/写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。

    实例

    如果 fopen() 函数不能打开指定的文件,下面的实例会生成一段消息:

    <html>
    <body>
    
    <?php
    $file=fopen("welcome.txt","r") or die("Unable to open file!");//输出引号中的话后会退出此文件
    ?></body>
    </html>

    关闭文件

    fclose() 函数用于关闭打开的文件:

    <?php
    $file = fopen("test.txt","r");
    
    //执行一些代码
    
    fclose($file);
    ?>

    检测文件末尾(EOF)

    feof() 函数检测是否已到达文件末尾(EOF)。

    在循环遍历未知长度的数据时,feof() 函数很有用。

    注释:在 w 、a 和 x 模式下,您无法读取打开的文件!

    if (feof($file)) echo "文件结尾";

    逐行读取文件

    fgets() 函数用于从文件中逐行读取文件。

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

    实例

    下面的实例逐行读取文件,直到文件末尾为止:

    <?php
    $file = fopen("welcome.txt", "r") or exit("无法打开文件!");
    // 读取文件每一行,直到文件结尾
    while(!feof($file))//如果没有到达文件末尾,进入循环
    {
        echo fgets($file). "<br>";
    }
    fclose($file);
    ?>

    逐字符读取文件

    fgetc() 函数用于从文件中逐字符地读取文件。

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

    实例

    下面的实例逐字符地读取文件,直到文件末尾为止:

    <?php
    $file=fopen("welcome.txt","r") or exit("无法打开文件!");
    while (!feof($file))
    {
        echo fgetc($file);
    }
    fclose($file);
    ?>

    小计一笔:可以从数据库的多个个表中读取数据,通过array_merge()函数 把获得的数组类型的数据进行合并,使之成为一个数组,进行后续其他处理,重命名......。

    if($_SESSION["account"]==$v)//通过访问2次数据库,并且合并所得数据,一次json返回
            {  /**/
                //首先保证赛事编码是唯一的
                $sql = selectFrom1($mysqli,$sql,"s",$_GET["eventId"]);//owner_user
                $sql = "select marathon_name,eventId,year,bib_format from marathon_info where eventId = ?";
                $stmt = $mysqli->prepare($sql);
                $stmt->bind_param("s",$_GET["eventId"]);//修改$_POST["eventId"]
                $stmt->execute();
                $result_events = $stmt->get_result();
                //获取所有数据
                $data_events = $result_events->fetch_all(MYSQLI_ASSOC);
                // echo '<hr />';
                // var_dump($data_events);
    
    
    # 3.根据请求字段,查询数据库
                $sql = "SELECT account FROM racepower_user_info.photographer_accounts
                          where belongToUser = ?";//表名,字段改变
                $data = selectFrom1($mysqli,$sql,"s",$_SESSION["account"]);//数据库,语句,类型,变量
    
                //修改合并两个数据库的数据
                $result=(array_merge($data_events,$data));//
                $cd=count($result);
    
               /**/ for($i=0;$i<$cd;$i++)
                {
                    if($result[$i][account])
                        $result[$i][allow_photographer]=$result[$i][account];
                        unset($result[$i][account]);
    
                }
               // var_dump($result);
               // echo '<hr />';
                $jsonString = json_encode($result);
                echo "{"events":".$jsonString."}";

    整合自W3school和菜鸟教程。

  • 相关阅读:
    【洛谷4005】小 Y 和地铁(搜索)
    【洛谷4348】[CERC2015] Cow Confinement(扫描线+线段树优化DP)
    【洛谷7016】[CERC2013] Captain Obvious and the Rabbit-Man(手动高斯消元)
    【洛谷3438】[POI2006] ZAB-Frogs(斜率优化)
    【洛谷3426】[POI2005] SZA-Template(KMP)
    【洛谷5157】[USACO18DEC] The Cow Gathering P(拓扑)
    【洛谷5155】[USACO18DEC] Balance Beam P(期望+凸壳)
    【洛谷5204】[USACO19JAN] Train Tracking 2 P(DP)
    【CF757F】Team Rocket Rises Again(最短路图+拓扑)
    【LOJ3038】「JOISC 2019 Day3」穿越时空 Bitaro(线段树)
  • 原文地址:https://www.cnblogs.com/yang01/p/7233736.html
Copyright © 2011-2022 走看看