计算机网络/计算机科学与应用/系统/运维/开发

PHP 文件操作

文件处理的3个步骤:

1、打开文件

2、从文件里读取数据、或者写入数据

3、关闭文件


实例1:

<meta charset="utf-8">
<form method="post" action="file.php" id="myForm">
    <center>请输入记事内容</center>
    <textarea name="text" rows="5" cols="35" id="text">------请输入记事内容------</textarea>
    <br>
    <input type="submit" value="保存">
</form>

<?php 
    //file.php
    header("Content-type:text/html;charset=utf8");
    if($_POST['text']){
        $text = $_POST['text'];
        // 建立文件链接
        $fp = fopen('./log.txt','a');
        fwrite($fp,$text);
        fclose($fp);
    echo "<script>alert('保存成功');location='arr1.php';</script>";
}

实例2:


//通过使用超全局数组$_SERVER来确定本系统文件的根目录
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT']."/PHP";
$username = $_POST['username'];
$gender   = $_POST['gender'];
$phone    = $_POST['phone'];
if($gender == "m"){
    $customer = "先生";
}else{
    $customer ="女士";
}

//$date为用date()函数处理的写入信息时的系统时间
$data = date("H:i:s Y-m-d");
$string_to_be_added = $data."\t".$username."\t".$customer."\t".$phone;

// fopen(打开的文件或url,文件流)
$fp = fopen("$DOCUMENT_ROOT/booked.txt",'ab');

// fwrite(要写入的打开文件,写入的字符串,最大字节数(可选))
if(fwrite($fp, $string_to_be_added, strlen($string_to_be_added)))
{
    echo $username."\t".$customer.",您的订房信息已经保存,我们稍后与你联系";
}else{
    echo "信息保存错误";
}

//用fclose()函数关闭文件
fclose($fp);



打开文件 ,建立链接

resource fopen(string filename, string mode,[,int use_include_path [,resource zcontext]])

mode 参数如下:

"r"    只读方式打开,将文件指针指向文件头。

"r+"  读写方式打开,将文件指针指向文件头。

"w"   写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。

"w+" 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。

"a"    写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。

"a+"  读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。

"x"

        创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。

        这和给底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。

        此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。

"x+"

        创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。

        这和给底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。

        此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。


写入文件

fwrite($fp,$text)


关闭文件链接

fclose($fp)


filetype判断文件类型

string filetype(string $filename)


filename表示文件的路径 改函数返回文件的类型

可能的值有fifo  char  dir block link file unknown

如果出错返回false

echo filetype('test.php');

还可以使用 is_dir判断文件名是否为一个目录 


创建和删除目录

bool mkdir(string $pathaneme [,int $mode = 0777 [,bool $recursive = false [,resource $content]]])

pathname 指定的目录 

mode  最大的访问权限

recursive 为true表示允许递归创建目录 


$strpath = './demo1/demo2/';      
if(!mkdir($strpath,0777,true)){   
  die('失败');     
}else{          
  echo "创建成功";      
}


删除目录 

bool  rmdir(string $pathname,[, resource $context])

 所删除的目录必须为空目录 且有相应的权限


$strpath = './demo1/demo2/';     
if(!rmdir($strpath)){         
   die('失败');     
}else{         
    echo "删除成功"; //删除demo2文件夹     
}


opendir()打开目录

resource opendir(string path [,resource context])


读取句柄中的条目

readdir([resource $dir_handle])


关闭目录句柄

 closedir([resource $dir_handle])

$dir = '/demo1/demo2'; if (is_dir($dir)) {     
    if($dh = opendir($dir)){         
        while(($file = readdir($dh)) !== false){ 
                    echo "filename:$file;filetype:".filetype($dir.$file)."\n";        
        }            
        closedir($dh);     
    } 
}

            

修改文件或目录的扩展名

bool rename(string oldname, string newname) 

oldname为具体的文件或目录的路径,newname为修改后的名称

成功返回真,失败返回假

实例1

<meta charset="utf-8">
<form method="post" action="rename.php">
    <center>请选择</center>
        <input type="file" name="path">
        <br>
        输入新的文件名:
        <input type="text" name="name">
        <input type="submit" value="更改">
    <center>注意:文件名需要带有扩展名</center>
</form>

<?php 
header("Content-type:text/html;charset=utf8");
if($_POST['name']){
        $path = $_POST['path'];
        $rename = $_POST['name'];
        $arr = explode('.',$rename);
        if(count($arr) >= 2){
        if(rename($path,$rename)){
            echo "<script>alert('修改成功')</script>";
        }else{
            echo "<script>alert('修改失败')</script>";
        }
    }
}


php

只要一个人还有追求,他就没有老。直到后悔取代了梦想,一个人才算老。熬过了必须的苦,才能过上喜欢的生活。

评论

^