php 文件操作1

Read:

********************************

1 传统步骤

fopen() 

file_exists()

fread()

2 fgets():读取一行 

3 fgetss(): 从图去的文本中去掉任何HTML PHP标记

4 fgetc(): 读取一个字符的内容,可用于读取二进制内容

5 file_get_contents: 可将整个文件读入到一个字符串,可以读取二进制文件。而且:不许要fopen(),NB!

6 file() : 类似file_get_contents不许要fopen就读入整个文件,区别是:将文件内容按行划分封装到一个数组中返回。

 

Write:

********************************

叮嘱:linux对文件的写权限控制非常严格,即使你随便建立一个文件,想要使用fwrite写入,也要保证对此文件你用用写权限。

笔者在root下建立的普通文件,用is_writeable(等价is_writable,好人性化啊,呵呵)就无法写,最后只好手动改动写入文件的操作权限为读写,方写入。

 

1 传统步骤:1)打开文件 fopen(),获得句柄 2)写入fwrite() ,可之前先进行is_writeable()判断

2 fwrite === fputs

3 和file_get_contents对应这里有:file_put_contents,同样不许要fopen()

4 需要注意的是,如果每次写入都从头开始,则fopen时方式选择w,w+. 如果需要从文件末尾添加,则需要使用a or a

 

删除:

 

*****************************

unlink(这个命令在shell下也可以执行)

文件删除不了,一定是权限的问题,关键是那个地方的权限,要去判定。(还没解决,mark下)

 

复制

****************************

copy($file1,$file2)

刚开始还是不行,按照doc的说明$file2可以复制前不存在,但是由于权限的问题,我这里只要先自己创建一个文件

,然后chmod o+w file2 然后才可以将$file1中的数据复制到$file2中。

 

重命名

************************

rename(1,2)

:-),既然上面不能删除,不能在复制时创建文件,这里也是权限问题,估计是apache的权限问题。有待下一步解决。

 

 

[唉,我把用到的两个目录,/var/www以及我的个人home下的目录全部设置为apache所有( 我这里是www-data,要看你apahce的用户是怎么配置的了,以上问题解决】

 

目录操作:

 

1 创建目录

mkdir

2 打开目录

opendir

3 列出目录所有文件

readdir

4 关闭目录

closedir

5 删除目录

rmdir

 

这上面设置ok后,这些操作就没有遇到什么阻力。

【中间遇到点挫折,马虎造成的,在vim中将函数前加了$,系统也没报错,检测了半天没检查出来,一定要小心】 

 

 

文件权限:

int fileperms() 

eg: echo substr(sprintf('%o',fileperms("php_folder")), -4);

 

 

附上过程中实验过的代码:

***********************

 

<?php

/*/* $filename="/home/mean/array.php";

if(file_exists($filename))

{

    $file=fopen($filename,"r");

    echo "fopen is ok!<br>";

    $str=fread($file,filesize($filename));

    print_r($str);

    fclose($file);

 

}

else

{

    echo "file isn't exist!";

}

 

 

 

$filename1="/home/mean/qiao.txt";

if(file_exists($filename1))

{

    $file1=fopen($filename1,"r");

    echo "<br>fgetss:<br>";

    echo fgetss($file1);

    //print_r($str1);

    fclose($file1);

    echo "fgetss is ok2!<br>";

 

}

else

{

    echo "open error22!";

}

$fn="/home/mean/qiao.txt";

$fh=fopen($fn,"r");

$ct=fgetc($fh);

print_r($ct);

fclose($fh);

 

//$fh2=fopen($fn,"r");

$ct2=file_get_contents($fn);

print_r($ct2);

 

$ct3=file($fn);

print "<br>file:<br>";

print_r($ct3);

 

//Write:

$fn3="/home/mean/yong.txt";

$ct1="to be or not to be!";

 

if (is_writable($fn3) )

{

    $handle=fopen($fn3,"a+");

    if(!$handle)

    {

        echo "不能打开文件$fn3";

        break;

    }

 

    if(fwrite($handle,$ct1)== FALSE)

    {

        echo "can not write into $fn3";

        break;

    }

 

    if(fwrite($handle,$ct1)== FALSE)

    {

        echo "error in 2 w";

        exit;

    }

 

    echo "<br>fwrite: ok!<br>";

    fclose($handle);

}

else

{

    echo "<br>$fn3 不可写";

}

/*

$ct2='why dont u leave me';

if(is_writable($fn3))

{

    if(file_put_contents($fn3,$ct2)=== FALSE)

    {

        echo " file_put_contents:error";

        exit;

    }

    else

    {

        echo "<br>";

        echo "write: success!";

    }

}

else

{

    echo "文件$fn3不可写";

}

 */

/*

// 删除文件

$file_del="/home/mean/qiao2.txt";

//chmod($file_del,0777);

if( unlink($file_del)===FALSE)

{

    echo "delete error!";

}

 

$file11="qiao.txt";

$file22="qiaoqiao.txt";

if(copy($file11,$file22)){

    echo "copy ok";}

else

{

    echo "copy no";

    echo "<br>";

}

 

 

$file33="qiao3.txt";

if(rename($file11,$file33))

{

    echo "rename ok";

}

else

{

    echo "rename :no";

}

 

//创建目录

if(is_dir("qiaoCreat"))

{

    rmdir("qiaoCreat");

    echo "rmdir ok";

}

else

{

    mkdir("qiaoCreat");

    echo "creat ok";

}

 

$opendirhandle=opendir("/var/www");

if($opendirhandle==false)

{

    echo "open dir error!";

}

else

{

    echo "<br>";

    echo "open success!";

}

 

 */

$folder="/var/www/php";

if(is_dir($folder))

{

 

    echo "open";

    if(false !==($openhandle=opendir($folder)))

    {

        echo "open is ok";

    }

    else

    {

        echo "cannot opendir";

    }

    while(false!==($file=readdir($openhandle))){

        echo "begin:<br>";

        echo "$file";

 

        echo "<br>";

    }

    closedir($openhandle);

}else

{

    echo "read files error";

}

 

// 文件权限look:即可查看文件,也可查看文件夹

$right= fileperms("php");

echo substr(sprintf('%o',$right),-4); //要看懂这句话的意思,首先通过sprintf将right用八进制表示,然后去倒数4位显示。

***********************

 

 

 

你可能感兴趣的:(apache,linux,PHP,shell,File,delete)