网站开发涉及到的技术内容介绍——后端PHP(2)

网站开发涉及到的技术内容介绍——后端PHP(1)icon-default.png?t=N7T8https://blog.csdn.net/xiaochenXIHUA/article/details/141000752?spm=1001.2014.3001.5501

一、PHP的常用函数

1.1、PHP文件夹的常用函数

PHP的目录常用函数
序号 目录常用函数 说明
1 $_SERVER['DOCUMENT_ROOT'] 获取到PHP项目的根目录
2 dirname(__FILE__) 获取到当前php文件所在的目录
3 is_dir(文件路径或文件路径和名称) 判断当前内容是否为文件夹目录
4 scandir(目录路径) 列出当前指定目录下的文件和目录
5 filetype(文件路径或文件路径和名称) 返回文件的数据类型,文件返回[file],目录返回[dir]
6 opendir(文件路径) 打开文件夹,返回该文件夹资源
7 readdir(目录资源) 每次只读取指定目录资源下的一个内容
8 closedir(目录资源) 关闭已经打开的目录资源

实现一个简易的目录内容浏览功能,如下所示:

1、新建一个名为【commonfunc.php】的文件,内容如下:

<html>

<head>
    <meta charset="UTF-8">
    <title>测试PHP常用的函数</title>
</head>

<body>
<?php

//指定PHP页面的内容类型和编码格式
header("Content-Type:text/html; charset=utf-8");

//获取到根目录
$rootPath=$_SERVER['DOCUMENT_ROOT'];
echo "项目根目录为【$rootPath 】 <br>";

//目录操作
$curfilepathname=__FILE__;
echo "当前程序所在的路径和名称为:$curfilepathname <br>";
//判断当前内容是否为路径
echo "【$curfilepathname 】是否为路径: ".is_dir($curfilepathname)."<br><br>";

$curfilepath=dirname(__FILE__);
echo "当前程序所在的路径为:$curfilepath <br>";
//判断当前内容是否为路径
echo "【$curfilepath 】是否为路径: ".is_dir($curfilepath)."<br><br>";

$curdirallfiles=scandir($curfilepath);
echo "当前程序所在目录【$curfilepath 】下的所有文件为:<br>";
showdir($curdirallfiles,$curfilepath);
echo "<br><br>";

//指定的目录
$testPath='E:\AllSoftware\phpStudy\PHPTutorial\WWW\php\test';

if (is_dir($testPath)){
    echo "[$testPath] 目录下的内容为:<br>";
    //打开指定的目录
    if($curOpenDir=opendir($testPath)) {
        //readdir方法每次只读取一个内容
        while (($file=readdir($curOpenDir))!==false) {
            //获取到完整的文件路径和文件名称
            $fullPathFile=$testPath."\\".$file;
            //获取到文件的类型
            $fileType=filetype($fullPathFile);
            if($fileType== "file"){
                echo "文件类型是[$fileType],[$file]是文件,文件完整路径和名称是[$fullPathFile]<br>";
            }
            else{
                echo "文件类型是[$fileType],[$file]是目录,文件完整路径和名称是[$fullPathFile]<br>";
            }

        }
        //关闭指定的目录
        closedir($curOpenDir);
    }
}

echo "<br><br>";


function showdir(array $curdirallfiles,$curpath)
{
    foreach($curdirallfiles as $key => $value){
        //过滤.和..作为返回上一级的操作
        if ($value=='.'||$value=='..'){
            echo "<a href='./showdirfiles.php?fullpathname=$curpath'>$value</a> <br>";
            continue;
        }
        
        $value=iconv('gbk','utf-8',$value);
        $fullPath=$curpath."\\".$value;
        if(is_dir($fullPath)){
            $fullpath2=$fullPath.'\\'.$value;
            //显示目录图标和目录名称(且目录可以点击查看其包含的文件和文件夹内容)
             echo "<img src='../images/目录.png' width='20px' height='20px'/> <a href='./showdirfiles.php?fullpathname=$fullpath2'> $value</a> <br>";
        }
        else{
            //显示文件图标和文件名称
             echo "<img src='../images/文件.png' width='20px' height='20px'/> $value <br>";
        }

    }
}

?>

</body>

</html>

2、再新建一个名为【showdirfiles.php】的文件,且内容如下:

<?php
header("Content-Type:text/html;charset=UTF-8");

$fullpathname =$_GET['fullpathname'];

$curpath=dirname($fullpathname);
$curdirallfiles=scandir($curpath);
showdir($curdirallfiles,$curpath);


function showdir(array $curDirAllFiles,$curPath)
{
    foreach($curDirAllFiles as $key => $value){
        //过滤.和..作为返回上一级的操作
        if ($value=='.'||$value=='..'){
            echo "<a href='./showdirfiles.php?fullpathname=$curPath'>$value</a> <br>";
            continue;
        }

        $value=iconv('gbk','utf-8',$value);
        $fullPath=$curPath."/".$value;
        // $value=iconv('gbk','utf-8',$value);
        if(is_dir($fullPath)){
            $fullpath2=$fullPath.'/'.$value;
            //显示目录图标和目录名称(且目录可以点击查看其包含的文件和文件夹内容)
            echo "<img src='../images/目录.png' width='20px' height='20px'/> <a href='./showdirfiles.php?fullpathname=$fullpath2'> $value</a> <br>";
        }
        else{
            //显示文件图标和文件名称(且可以对文件进行删除、移动、复制操作)
            echo "<img src='../images/文件.png' width='20px' height='20px'/> $value <br>";
        }

    }
}

?>

1.2、PHP文件的常用函数

PHP文件的操作
序号 文件操作方法 说明
1 fopen(文件路径和名称,模式) 以指定模式打开文件,且返回对应的文件资源
2 fwrite(打开的文件资源,需写入数据) 将数据写入到文件中,且返回写入的数据长度
3 fread(打开的文件资源,需读取的数据长度) 读取指定长度的文件内容
4 fgets(打开的文件资源) 调用一次该方法读取文件的一行内容
5 readfile(文件路径和名称) 读取文件并自动打印展示
6 file_put_contents(文件路径和名称,需保存数据) 将内容保存到文件中(覆盖写入,先清空文件在写入),如果文件不存在则创建该文件;返回结果是保存内容的长度
7 file_get_contents(本地文件路径和名称或者远程的URL地址) 将整个文件的内容读取到一个字符串中
文件打开(fopen)模式说明
序号 模式内容 说明
1 w 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建
2 w+ 读写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建
3 r 只读方式打开,将文件指针指向文件头
4 r+ 读写方式打开,将文件指针指向文件头
5 a 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建 【追加文件内容】
6 a+ 读写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建 
7 x 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则文件打开 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建 
8 x+ 创建并以读写入方式打开,将文件指针指向文件头。如果文件已存在,则文件打开 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建 
PHP的临时文件
前面我们将内容写入到文件保存到磁盘的都是永久文件;而创建临时文件对我们开发也有用处(即:建临时文件,用完后会自动删除,我们不需要去维护这个文件的删除状态)。
<?php
header("Content-Type:text/html;charset=UTF-8");

//临时文件(windows系统的临时文件存储在【C:\Users\用户名\AppData\Local\Temp目录中】带有php内容的就是)
//1、创建一个临时文件
$tmpfile=tmpfile();
//2、向临时文件写入内容
$writeInfoToTmpfile=fwrite($tmpfile,"测试写入临时文件的信息1");
echo "临时文件写入内容1结果:$writeInfoToTmpfile <br>";
$writeInfoToTmpfile2=fwrite($tmpfile,"第二次写入测试临时文件信息2");
echo "临时文件写入内容2结果:$writeInfoToTmpfile2 <br>";
// //休眠15秒,方便我们去【C:\Users\用户名\AppData\Local\Temp目录中】查看文件内容
// sleep(15);
// //读取临时文件方式一
// fseek($tmpfile,0);
// rewind($tmpfile);
// //指定读取1K的文件内容
// $readTmpfileInfo=fread($tmpfile,1024);
// //关闭临时文件(文件一关闭就会被删除)
// fclose($tmpfile);

//读取临时文件方式二
$tmpfile_path = stream_get_meta_data($tmpfile)['uri'];
$readTmpfileInfo=file_get_contents($tmpfile_path);
echo "读取到的临时文件信息为: $readTmpfileInfo <br>";

?>
PHP文件的重命名、移动、复制和删除
序号 文件的操作 说明