PHP文件处理

来源:互联网 发布:淘宝最低折扣哪里设置 编辑:程序博客网 时间:2024/06/07 22:30

PHP文件处理

一般分为三个步骤:

  • 打开或者创建文件

    打开或者创建文件fopen() @$fp=fopen(filename,mode);

    打开文件可能遇到下列问题

    没有权限时,PHP会给出一个警告,可以通过@来抑制错误,然后通过if判断以一种对用户友好的方式来处理这个错误

    if(!$fp){  DO...  exit;}
  • 操作文件

    写入

    fwrite() int fwrite ( resource $handle , string $string [, int $length ] )

    同时写上写入数据的长度length的话会有效避免一些跨平台兼容问题

    读取

    fgetc() fgets() fgetss() fgetcsv() readfile() fpassthru() file() fread()

    判断何时读完文件 feof()

  • 关闭文件 fclose()

除此之外还有一些有用的文件函数:

查看文件是否存在:file_exists()

确定文件大小:filesize()

删除一个文件:unlink()

在文件中定位:rewind() fseek() ftell()

文件锁定:flock()

bool flock ( resource $handle , int $operation [, int &$wouldblock ] )

操作值 意义 LOCK_SH(以前1)LOCK_SH(以前1) 读操作锁定,这意味着文件可以共享,其他人可以读该文件 LOCK_EX(以前2) 写操作锁定,这是互斥的。该文件不能被共享 LOCK_UN(以前3) 释放已有的锁定 LOCK_NB(以前4) 防止在请求加锁时发生阻塞

一个简单的写入txt和读取txt文本的例子:

写入

$outputString = $date."\t".$tireqty." tires\t".$oilqty." bottles oil\t".$sparkqty." spark plugs\t\$".$totalamout."\t".$address."\r\n";    //open file for appending    @ $fp = fopen("$DOCUMENT_ROOT/../orders/orders.txt", 'ab');    if(!$fp){        echo "<p><strong>Your order could not be processed at this time. Please try again later.</strong></p></body></html>";        exit;    }    fwrite($fp, $outputString,strlen($outputString));    flock($fp,LOCK_UN);    fclose($fp);

读取

@$fp = fopen("$DOCUMENT_ROOT/../orders/orders.txt", 'rb');    if(!$fp){        echo "<p><strong>No orders pending. Please try again later.</strong></p></body></html>";        exit;    }    echo "Date\tTires\tOil\tSparkPlugs\ttotalamout\tAddress<br/>";    while(!feof($fp)){        $order=fgets($fp,999);        echo $order."<br/>";    }fclose($fp);