当前位置:  编程技术>php
本页文章导读:
    ▪一个不错的文本文件操作的php类      代码如下: 代码如下: <?php class  CtbClass  {     var  $file;             var  $index;       //建立一个文件并写入输入 function  null_write($new) {       $f=fopen($this->file,"w"); .........
    ▪一个php的页面缓存类      代码如下: 代码如下: <?php /* $cache = new Cache("../cache/",20); // 构造函数,创建缓存类对象 $cache->PutCache(); // 倒出缓存 */ class Cache { private $CacheDir = ’Cache’; /* 缓存目录 */ private $SetTime.........
    ▪php使用函数方式输出XML文件的例子      php使用函数方式输出XML文件的例子,有需要的朋友可以参考下。   代码如下: <?php $conn= new PDO("mysql:dbname=lamp;host=localhost","root","123456"); $sql="select id,username,phone,*** from user"; $pdo=$conn->prepar.........

[1]一个不错的文本文件操作的php类
    来源: 互联网  发布时间: 2013-12-24

代码如下:

代码如下:
<?php
class  CtbClass  {
    var  $file;        
    var  $index;    
 
//建立一个文件并写入输入
function  null_write($new)
{
      $f=fopen($this->file,"w");        
      flock($f,LOCK_EX);
      fputs($f,$new);        
      fclose($f);  
}
//  添加数据记录到文件末端
function  add_write($new)  {
 $f=fopen($this->file,"a");        
 flock($f,LOCK_EX);
 fputs($f,$new);
 fclose($f);  
}  
//  配合readfile()的返回一起使用,把一行数据转换为一维数组
function  make_array($line)  {
 $array  =  explode()("\x0E",$line);
 return  $array;
}
 
//把为一维数组转换一行数据
function  join_array($line)  {
 $array  =  join("\x0E",$line);
 return  $array;
}
//  返回数据文件的总行数
function  getlines()  {
 $f=file($this->file);        
 return  count($f);        
}
//  返回下一行的数据记录(备用)
function  next_line()  {
 $this->index=$this->index++;        
 return  $this->get();        
}
 
//  返回上一行的数据记录(备用)
function  prev_line()  {
 $this->index=$this->index--;        
 return  $this->get();        
}    
//  返回当前行的数据记录数据较小
function  get()  {
 $f=fopen($this->file,"r");        
 flock($f,LOCK_SH);
 for($i=0;$i<=$this->index;$i++)  {
  $rec=fgets($f,1024);        
 }
 $line=explode("\x0E",$rec);
 fclose($f);
 return  $line;        
}    
//  返回当前行的数据记录数据较大
function  get_big_file()  {
 $f=fopen($this->file,"r");        
 flock($f,LOCK_SH);
 for($i=0;$i<=$this->index;$i++)  {
  $rec=fgets($f,1024*5);        
 }
 $line=explode("\x0E",$rec);
 fclose($f);
 return  $line;        
}    
//  打开数据文件---以一维数组返回文件内容
function  read_file()  {
 if  (file_exists($this->file))  {
  $line  =file($this->file);
 }
 return  $line;
}
//  打开数据文件---以二维数组返回文件内容
function  openFile()  {
 if  (file_exists($this->file))  {
  $f  =file($this->file);
  $lines  =  array();
  foreach  ($f  as  $rawline)  {
   $tmpline  =  explode("\x0E",$rawline);
   array_push($lines,  $tmpline);
  }
 }
 return  $lines;
}
//  传入一个数组,合并成一行数据,重写整个文件
function  overwrite($array){
 $newline  =  implode("\x0E",$array); 
 $f  =  fopen($this->file,"w");
 flock($f,LOCK_EX);
 fputs($f,$newline);
 fclose($f);
}
   
//  添加一行数据记录到文件末端
function  add_line($array,$check_n=1)  {    
 $s=implode("\x0E",$array);        
 $f=fopen($this->file,"a");        
 flock($f,LOCK_EX);
 fputs($f,$s);        
 if  ($check_n==1)  fputs($f,"\n");        
 fclose($f);  
}        
 
//  插入一行数据记录到文件最前面
function  insert_line($array)  {
 $newfile  =  implode("\x0E",$array);
 $f  =  fopen($this->file,"r");
 flock($f,LOCK_SH);
 while  ($line  =  fgets($f,1024))  {
  $newfile  .=  $line;
 }
 fclose($f);
 $f  =  fopen($this->file,"w");
 flock($f,LOCK_EX);
 fputs($f,$newfile);
 fclose($f);
}
 
//  更新所有符合条件的数据记录,适用于每行字节数据较大的情况
function  update($column,$query_string,$update_array)  {
 $update_string  =  implode("\x0E",$update_array);      
 $newfile  =  ""; 
 $fc=file($this->file);
 $f=fopen($this->file,"r");
 flock($f,LOCK_SH);
 for  ($i=0;$i<count($fc);$i++)  {
  $list  =  explode("\x0E",$fc[$i]);
  if  ($list[$column]  !=  $query_string)  {
   $newfile  =  $newfile.chop($fc[$i])."\n";
  }  else  {
   $newfile  =  $newfile.$update_string;
  }
 }
 fclose($f);
 $f=fopen($this->file,"w");
 flock($f,LOCK_EX);
 fputs($f,$newfile);
 fclose($f);
}
 
//  更新所有符合条件的数据记录,适用于每行字节数据较小的情况
function  update2($column,$query_string,$update_array)  {
 $newline  =  implode("\x0E",$update_array);      
 $newfile  =  "";
 $f  =  fopen($this->file,"r");
 flock($f,LOCK_SH);
 while  ($line  =  fgets($f,1024))  {
  $tmpLine  =  explode("\x0E",$line);
  if  ($tmpLine[$column]  ==  $query_string)  {
   $newfile  .=  $newline;
  }  else  {
   $newfile  .=  $line;
  }
 }
 fclose($f);
 $f  =  fopen($this->file,"w");
 flock($f,LOCK_EX);
 fputs($f,$newfile);
 fclose($f);
}
 
//  删除所有符合条件的数据记录,适用于每行字节数据较大的情况
function  delete($column,$query_string)  {
 $newfile  =  ""; 
 $fc=file($this->file);
 $f=fopen($this->file,"r");
 flock($f,LOCK_SH);
 for  ($i=0;$i<count($fc);$i++)  {
  $list  =  explode("\x0E",$fc[$i]);
  if  ($list[$column]  !=  $query_string)  {
   $newfile  =  $newfile.chop($fc[$i])."\n";
  }
 }
 fclose($f);
 $f=fopen($this->file,"w");
 flock($f,LOCK_EX);
 fputs($f,$newfile);
 fclose($f);
}        
 
//  删除所有符合条件的数据记录,适用于每行字节数据较小的情况
function  delete2($column,$query_string){    
 $newfile  =  "";
 $f  =  fopen($this->file,"r");
 flock($f,LOCK_SH);
 while  ($line  =  fgets($f,1024))  {
  $tmpLine  =  explode("\x0E",$line);
  if  ($tmpLine[$column]  !=  $query_string)  {
   $newfile  .=  $line;
  }
 }
 fclose($f);
 $f  =  fopen($this->file,"w");
 flock($f,LOCK_EX);
 fputs($f,$newfile);
 fclose($f);
}
 
       //取得一个文件里某个字段的最大值
function  get_max_value($column)  {
 $tlines  =  file($this->file);
 for  ($i=0;$i<=count($tlines);$i++)  {
  $line=explode("\x0E",$tlines[$i]);
  $get_value[]=$line[$column];
 }
    $get_max_value  =  max($get_value);
 return  $get_max_value;
}
 
 
//  根据数据文件的某个字段是否包含$query_string进行查询,以二维数组返回所有符合条件的数据
function  select($column,  $query_string)  {
 $tline  =  $this->openfile();
 $lines  =  array();
 foreach  ($tline  as  $line)  {
  if  ($line[$column]  ==  $query_string)  {
   array_push($lines,  $line);
  }
 }
 
 return  $lines;
}
 
//  功能与function  select()一样,速度可能略有提升
function  select2($column,  $query_string)  {
 if  (file_exists($this->file))  {
  $tline  =  $this->read_file();
  foreach  ($tline  as  $tmpLine)  {
   $line  =  $this->make_array($tmpLine);
   if  ($line[$column]  ==  $query_string)  {
    $lines[]=$tmpLine;
   }
  }
 }
 
 return  $lines;
}
 
//  根据数据文件的某个字段是否包含$query_string进行查询,以一维数组返回第一个符合条件的数据
function  select_line($column,  $query_string)  {
 $tline  =  $this->read_file();
 foreach  ($tline  as  $tmpLine)  {
  $line  =  $this->make_array($tmpLine);
  if  ($line[$column]  ==  $query_string)  {
      return  $line;
   break;
  }
 }
}
//  select  next/prev  line(next_prev  ==>  1/next,  2/prev)  by  cx
function  select_next_prev_line($column,  $query_string,  $next_prev)  {
 $tline  =  $this->read_file();
 $line_key_end  =  count($tline)  -  1;
 $line_key  =  -1;
 foreach  ($tline  as  $tmpLine)  {
  $line_key++;
  $line  =  $this->make_array($tmpLine);
  if  ($next_prev  ==  1)  {    //  next?
   if  ($line[$column]  ==  $query_string)  {
    if  ($line_key  ==  0)  {
     return  0;
    }  else  {
     $line_key_up  =  $line_key  -  1;
     return  $up_line;
    }
   }  else  {
    $up_line  =  $line;
   }
  }  elseif  ($next_prev  ==  2)  {    //  prev?
   if  ($line[$column]  ==  $query_string)  {
    if  ($line_key  ==  $line_key_end)  {
     return  0;
    }  else  {
     $line_key_down  =  $line_key  +  1;
     break;
    }
   }
  }  else  {
   return  0;
  }
 }
 $down_line  =  $this->make_array($tline[$line_key_down]);
 return  $down_line;
}
?>

您可能感兴趣的文章:
php文件操作类的代码一例
php文件操作的小例子
PHP文件操作方法问答
php中目录与文件操作详解
php目录与文件操作的实例教程


    
[2]一个php的页面缓存类
    来源: 互联网  发布时间: 2013-12-24
代码如下:
代码如下:

<?php
/* $cache = new Cache("../cache/",20); // 构造函数,创建缓存类对象
$cache->PutCache(); // 倒出缓存
*/
class Cache
{
private $CacheDir = ’Cache’; /* 缓存目录 */
private $SetTimeOut = 10; /* 缓存过期时间 */
private $SetExt = ’.cache’; /* 缓存文件后缀名 */
private $CacheFileUrl = ’’; /* 缓存文件所在地址 */
private $CacheConfigFile = ’’; /* 缓存文件配置信息 */

public $LastUnixTimePoke = 0; /* 上一次缓存的 Unix 时间戳 */
public $CurrentUnixTimePoke = 0;/* 当前缓存的 Unix 时间戳 */
public $NextUnixTimePoke = 0; /* 下一次缓存的 Unix 时间戳 */
public $UnixNowToNext = 0; /* 现在和下一次缓存相差的 Unix 时间戳 */

public $LastTimePoke = 0; /* 上一次缓存的时间 */
public $CurrentTimePoke = 0;/* 当前缓存的时间 */
public $NextTimePoke = 0; /* 下一次缓存的时间 */

public $DataLength = 0; /* 缓存区内容长度 */
public $CacheToPage = ’’; /* 缓存文件内容 */
private $SplitTeam = false; /* 是否分组存放Cache文件 */

public $Cache = false; /* 是否需要缓存,用户外界判断 */

private $_IsCache = false; /* 是否能够缓存 */

public function Cache($SetTimeOut = 20,$CacheDir = ’Cache’,$SplitTeam = false,$SetExt = ’.cache’)
{
$this->CacheDir = $CacheDir;
$this->SplitTeam = $SplitTeam;
if(!is_numeric($SetTimeOut))
{
$this->ErrResponse(’缓存过期时间设置无效’);
return false;
} else {
$this->SetTimeOut = $SetTimeOut;
}
$this->SetExt = $SetExt;

/* 缓存开始 */
ob_clean();
ob_start();
ob_implicit_flush(0);
$this->CreateCache();
return true;
}

private function CreateCache()
{
$_CacheFile = str_replace()(’.’,’_’,basename($_SERVER[’PHP_SELF’])) . ’_’ .
md5(basename($_SERVER[’PHP_SELF’])) . $this->SetExt;
$_CacheConfig = str_replace(’.’,’_’,basename($_SERVER[’PHP_SELF’])) . ’_’ . ’.cof’;

if(!file_exists($this->CacheDir))
{
mkdir($this->CacheDir,0777);
}

if($this->SplitTeam)
{
$_CacheConfigDir = $this->CacheDir . str_replace(’.’,’_’,basename($_SERVER[’PHP_SELF’])) . ’_/’;
if(!file_exists($_CacheConfigDir))
{
mkdir($_CacheConfigDir,0777);
}
$_CacheUrl = $this->CacheDir . $_CacheConfigDir . $_CacheFile;
$_CacheConfigUrl = $this->CacheDir . $_CacheConfigDir . $_CacheConfig;
} else {
$_CacheUrl = $this->CacheDir . $_CacheFile;
$_CacheConfigUrl = $this->CacheDir . $_CacheConfig;
}

if(!file_exists($_CacheUrl))
{
$hanld = @fopen($_CacheUrl,"w");
@fclose($hanld);
}

if(!file_exists($_CacheConfigUrl))
{
$hanld = @fopen($_CacheConfigUrl,"w");
@fclose($hanld);
}

$this->CacheConfigFile = $_CacheConfigUrl;
$this->CacheFileUrl = $_CacheUrl;
$this->CheckCache();
return true;
}

private function CheckCache()
{
$_FileEditTime = @filemtime($this->CacheFileUrl);
$_TimeOut = $this->SetTimeOut;
$_IsTimeOut = $_FileEditTime $_TimeOut;

$this->LastUnixTimePoke = $_FileEditTime;
$this->NextUnixTimePoke = $_IsTimeOut;
$this->CurrentUnixTimePoke = time();
$this->UnixNowToNext = $this->NextUnixTimePoke - time();

$this->LastTimePoke = date("Y-m-d H:i:s",$_FileEditTime);
$this->NextTimePoke = date("Y-m-d H:i:s",$_IsTimeOut);
$this->CurrentTimePoke = date("Y-m-d H:i:s",time());

$_TxtInformation = "上次缓存时间戳: $this->LastUnixTimePoke ";
$_TxtInformation .= "当前缓存时间戳: $this->CurrentUnixTimePoke ";
$_TxtInformation .= "下次缓存时间戳: $this->NextUnixTimePoke ";

$_TxtInformation .= "上次缓存时间: $this->LastTimePoke ";
$_TxtInformation .= "当前缓存时间: $this->CurrentTimePoke ";
$_TxtInformation .= "下次缓存时间: $this->NextTimePoke ";

$_TxtInformation .= "距离下次缓存戳: $this->UnixNowToNext ";

$handl = @fopen($this->CacheConfigFile,’w’);
if($handl)
{
@fwrite($handl,$_TxtInformation);
@fclose($handl);
}

if($_IsTimeOut >= time())
{
$this->GetCacheData();
}
}

private function ClearCacheFile()
{
@unlink($this->CacheFileUrl);
@unlink($this->CacheConfigFile);
}

public function PutCache()
{
$this->DataLength = ob_get_length();
$PutData = ob_get_contents();
if(!file_exists($this->CacheFileUrl))
{
$CreateOK = $this->CreateCache();
if(!$CreateOK)
{
$this->ErrResponse(’检查缓存文件时产生错误,缓存文件创建失败’);
return false;
}
} else {
$hanld = @fopen($this->CacheFileUrl,"w");
if($hanld)
{

if(@is_writable($this->CacheFileUrl))
{
@flock($hanld, LOCK_EX);
$_PutData = @fwrite($hanld,$PutData);
@flock($hanld, LOCK_UN);
if(!$_PutData)
{
$this->ErrResponse(’无法更改当前缓存文件内容’);
return false;
} else {
@fclose($hanld);
return true;
}
} else {
$this->ErrResponse(’缓存文件不可写’);
return false;
}
} else {

$this->ErrResponse(’打开缓存文件发生致命错误’);
return false;
}
}
}

public function GetCacheData()
{
$hanld = @fopen($this->CacheFileUrl,"r");
if($hanld)
{
if(@is_readable($this->CacheFileUrl))
{
$this->CacheToPage = @file_get_contents($this->CacheFileUrl);
$IsEmpty = count(file($this->CacheFileUrl)); //判断缓存文件是否为空

if($IsEmpty > 0)
{
echo $this->CacheToPage;
@fclose($hanld);
ob_end_flush();
exit();
}
} else {
$this->ErrResponse(’读取缓存文件内容失败’);
return false;
}
} else {
$this->ErrResponse(’打开缓存文件失败’);
return false;
}
}

private function ErrResponse($Msg)
{
echo $Msg;
}
}
?>


    
[3]php使用函数方式输出XML文件的例子
    来源: 互联网  发布时间: 2013-12-24

php使用函数方式输出XML文件的例子,有需要的朋友可以参考下。
 

代码如下:

<?php
$conn= new PDO("mysql:dbname=lamp;host=localhost","root","123456");

$sql="select id,username,phone,*** from user";
$pdo=$conn->prepare($sql);
$pdo->execute();
$str='<?xml version="1.0" encoding="utf-8" ?>';
$str.='<users>';
//如果内容中有HTML代码可以使用<![CDATA][ 内容 ]>
while(list($id,$username,$phone,$***)=$pdo->fetch(PDO::FETCH_NUM)){
    $str.='<user id="'.$id.'">';
    $str.='<username>'.$username.'</username>';
    $str.='<phone>'.$phone.'</phone>';
    $str.='<***>'.$***.'</***>';
    $str.='</user>';
}

$str.='</users>';
file_put_contents("user.xml",$str);
header("Content-type:text/xml");
echo $str;
?>


    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php数组排序方法大全(脚本学堂整理奉献) iis7站长之家
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,