Просмотр файла files.php

Размер файла: 2.83Kb
<?php /*(c) Im-ieee*/
$lock_fp=''; $p_nm_cch=false; function lock($md){
	global $lock_fp;
	$lock_fp=fopen(PG_PREF.'lock.txt',$md);
	flock($lock_fp,($md=='r')?LOCK_SH:LOCK_EX);
}
function rel_lock(){
	global $lock_fp;
	flock($lock_fp, LOCK_UN);
	fclose($lock_fp);
}
function m_on_p(&$p, &$l){
	$p=(int)$p;
	file_exists(PG_PREF.$p.'.txt') or $p=p_num();
	$t=file(PG_PREF.$p.'.txt');
	$l=sizeof($t); $ret=array(array(), array(), array());
	foreach($t as $ind=>$post){
		list($ret[0][$ind],$ret[1][$ind],$ret[2][$ind])=explode(chr(1), $post);
		$ret[2][$ind]=rtrim($ret[2][$ind]);
	}
	return $ret;
}
function p_num(){
	global $p_nm_cch;
	if($p_nm_cch===false){
		$p_nm_cch=file_get_contents(PG_PREF.'total.txt');
	}
	return $p_nm_cch;
}
function last_wr(){
	return time()-filemtime(PG_PREF.'last.txt');
}
function wr($n, $m){
	$n=str_replace(chr(1),'',$n);
	$m=str_replace(chr(1),'',$m);
	$l=file_get_contents(PG_PREF.'last.txt')+1;
	if(($l>MESS_TOT)||$l==1){
		file_put_contents(PG_PREF.'last.txt', 1);
		$t=p_num()+1;
		file_put_contents(PG_PREF.'total.txt', $t);
		file_put_contents(PG_PREF.$t.'.txt', $n.chr(1).time().chr(1).$m);
	}else{
		file_put_contents(PG_PREF.'last.txt', $l);
		file_put_contents(PG_PREF.p_num().'.txt', PHP_EOL.$n.chr(1).time().chr(1).$m, FILE_APPEND);
	}
}
function get_mes($p, $n){
	$p=(int)$p; $n=(int)$n;
	file_exists(PG_PREF.$p.'.txt') or exit(ex_hn('Сообщение не найдено'));
	$arr=file(PG_PREF.$p.'.txt'); 
	isset($arr[$n]) or exit(ex_hn('Сообщение не найдено'));
	$arr=explode(chr(1), $arr[$n]);
	$arr[2]=rtrim($arr[2]);
	return $arr;
}
function ed_m($p, $n, $a, $d, $m){
	$p=(int)$p; $n=(int)$n;
	file_exists(PG_PREF.$p.'.txt') or exit(ex_hn('Сообщение не найдено'));
	$arr=file(PG_PREF.$p.'.txt');
	isset($arr[$n]) or exit(ex_hn('Сообщение не найдено'));
	$arr[$n]=str_replace(chr(1),'',$a).chr(1).$d.chr(1).str_replace(chr(1),'',$m);
	file_put_contents(PG_PREF.$p.'.txt', join(PHP_EOL, array_map('rtrim',$arr)));
}
function del_m($p,$n){
	$p=(int)$p; $n=(int)$n;
	file_exists(PG_PREF.$p.'.txt') or exit(ex_hn('Сообщение не найдено'));
	$arr=file(PG_PREF.$p.'.txt'); 
	isset($arr[$n]) or exit(ex_hn('Сообщение не найдено'));
	unset($arr[$n]);
	$tot=p_num();
	for(;$p<$tot;$p++){
		$arr2=file(PG_PREF.($p+1).'.txt');
		$arr[]=$arr2[0];
		unset($arr2[0]);
		file_put_contents(PG_PREF.$p.'.txt', join(PHP_EOL, array_map('rtrim',$arr)));
		$arr=$arr2;
	}
	if(sizeof($arr)==0){
		unlink(PG_PREF.$tot.'.txt');
		file_put_contents(PG_PREF.'last.txt', ($tot==1)?0:MESS_TOT);
		file_put_contents(PG_PREF.'total.txt', $tot-1);
	} else {
		file_put_contents(PG_PREF.$tot.'.txt',$arr);
		file_put_contents(PG_PREF.'last.txt',sizeof($arr));
	}
}
function ct_all(){
	lock('r');
	$t=(p_num()-1)*MESS_TOT+file_get_contents(PG_PREF.'last.txt');
	rel_lock();
	return $t;
}
?>