Web/PHP
[self] 클래스 파일컨트롤
aucd29
2013. 9. 26. 21:38
<?
class Filecontrol
{
var $objCommon;
var $sFilename;
function number( $sSaveRoot )
{
if( !is_file("$sSaveRoot/list.cgi") )
{
$fp = fopen( "$sSaveRoot/list.cgi", w );
fputs( $fp, "1\n" );
$sFilename = 1;
}
else
{
$aList = file("$sSaveRoot/list.cgi");
$sFilename = chop($aList[0]) + 1;
$fp = fopen("$sSaveRoot/list.cgi", "w");
fwrite($fp, "$sFilename\n");
foreach( $aList as $value )
{
fwrite($fp, $value);
}
fclose($fp);
}
$this->sFilename = $sFilename;
}
function insert( $sSaveRoot, &$aData )
{
$this->number( $sSaveRoot );
$aData[no] = $this->sFilename;
$aData[wdate] = date(Ymd);
$sReturnTxt .= "<?\n";
foreach( $aData as $item => $value )
{
# $value=addslashes( $value ); php 버전 업으로 인한 불필요로서 없앰
$sReturnTxt .= "$"."$item = \"$value\"; \n";
}
$sReturnTxt .= "\n?>";
$fp = fopen( "$sSaveRoot/$this->sFilename.php", w );
fputs( $fp,$sReturnTxt);
fclose( $fp );
if( $fp )
{
return TRUE;
}
else
{
return FALSE;
}
}
function insert2( $sSaveRoot, &$aData, $sFileName )
{
$aData[wdate] = date(Ymd);
$sReturnTxt .= "<?\n";
foreach( $aData as $item => $value )
{
#$value=addslashes( $value );
$sReturnTxt .= "$"."$item = \"$value\"; \n";
}
$sReturnTxt .= "\n?>";
$fp = fopen( "$sSaveRoot/$sFileName.php", w );
fputs( $fp,$sReturnTxt);
fclose( $fp );
if( $fp )
{
return TRUE;
}
else
{
return FALSE;
}
}
function modify( $sSaveRoot, &$aData, $sFilename )
{
$sReturnTxt .= "<?\n";
foreach( $aData as $item => $value )
{
$value=addslashes( $value );
$sReturnTxt .= "$"."$item = \"$value\"; \n";
}
$sReturnTxt .= "\n?>";
$fp = fopen( "$sSaveRoot/$sFilename.php", w );
fputs( $fp,$sReturnTxt);
fclose( $fp );
if( $fp )
{
return TRUE;
}
else
{
return FALSE;
}
}
function delete( $nNO, $sSaveRoot = './data' )
{
$aList = file("$sSaveRoot/list.cgi"); //리스트 파일에서 번호 지우기
$fp = fopen("$sSaveRoot/list.cgi", "w");
foreach( $aList as $value )
{
$value = trim( $value );
if( $nNO != $value )
{
fwrite($fp, "$value\n");
}
}
fclose($fp);
if( @unlink("$sSaveRoot/$nNO.php") )
{
return TRUE;
}
else
{
return FALSE;
}
}
function delDir( $dir )
{
$current_dir = opendir($dir);
while($entryname = readdir($current_dir))
{
if(is_dir("$dir/$entryname") and ($entryname != "." and $entryname!=".."))
{
$this->delDir("${dir}/${entryname}");
}
else if($entryname != "." and $entryname!="..")
{
unlink("${dir}/${entryname}");
}
}
closedir($current_dir);
rmdir(${dir});
}
function readData( $sDir, $sType = NULL )
{
$dbdir = opendir($sDir);
# 디렉토리만 찾기
if( $sType == 'dir' )
{
while($data = readdir($dbdir))
{
if(is_dir("$sDir/$data") && $data != "." && $data != "..")
{
$rtn[] = $data;
}
}
}
# 디렉토리 파일만 찾기
else if( $sType == 'file' )
{
while($data = readdir($dbdir))
{
if( $data != "." && $data != ".." && !is_dir("$sDir/$data") )
{
$rtn[] = $data;
}
}
}
# 파일/디렉토리 찾기
else
{
while($data = readdir($dbdir))
{
if( $data != "." && $data != "..")
{
$rtn[] = $data;
}
}
}
closedir( $dbdir );
return $rtn;
}
function obstart( $sBase, $sTargeRoot, $sTargetName )
{
ob_start();
include_once "$sBase";
$result = ob_get_contents();
ob_end_clean();
$fp = fopen( "$sTargeRoot/$sTargetName", w );
fputs( $fp,$result);
fclose( $fp );
}
# 2003-12-06 현재 원하는 디렉토리의 퍼미션 가져오기
function getPermition( $sObj )
{
return substr(decoct(fileperms($sObj)),2,3);
}
# 2003-12-06 지금 쓰고있는 디렉토리를 리턴
function getSelfDir( $sRoot )
{
$sBasename = basename($sRoot);
$RTN = str_replace( '/'.$sBasename, '', $sRoot );
return $RTN;
}
}
if( !$objFctl )
{
$objFctl = & new Filecontrol;
}
?>
class Filecontrol
{
var $objCommon;
var $sFilename;
function number( $sSaveRoot )
{
if( !is_file("$sSaveRoot/list.cgi") )
{
$fp = fopen( "$sSaveRoot/list.cgi", w );
fputs( $fp, "1\n" );
$sFilename = 1;
}
else
{
$aList = file("$sSaveRoot/list.cgi");
$sFilename = chop($aList[0]) + 1;
$fp = fopen("$sSaveRoot/list.cgi", "w");
fwrite($fp, "$sFilename\n");
foreach( $aList as $value )
{
fwrite($fp, $value);
}
fclose($fp);
}
$this->sFilename = $sFilename;
}
function insert( $sSaveRoot, &$aData )
{
$this->number( $sSaveRoot );
$aData[no] = $this->sFilename;
$aData[wdate] = date(Ymd);
$sReturnTxt .= "<?\n";
foreach( $aData as $item => $value )
{
# $value=addslashes( $value ); php 버전 업으로 인한 불필요로서 없앰
$sReturnTxt .= "$"."$item = \"$value\"; \n";
}
$sReturnTxt .= "\n?>";
$fp = fopen( "$sSaveRoot/$this->sFilename.php", w );
fputs( $fp,$sReturnTxt);
fclose( $fp );
if( $fp )
{
return TRUE;
}
else
{
return FALSE;
}
}
function insert2( $sSaveRoot, &$aData, $sFileName )
{
$aData[wdate] = date(Ymd);
$sReturnTxt .= "<?\n";
foreach( $aData as $item => $value )
{
#$value=addslashes( $value );
$sReturnTxt .= "$"."$item = \"$value\"; \n";
}
$sReturnTxt .= "\n?>";
$fp = fopen( "$sSaveRoot/$sFileName.php", w );
fputs( $fp,$sReturnTxt);
fclose( $fp );
if( $fp )
{
return TRUE;
}
else
{
return FALSE;
}
}
function modify( $sSaveRoot, &$aData, $sFilename )
{
$sReturnTxt .= "<?\n";
foreach( $aData as $item => $value )
{
$value=addslashes( $value );
$sReturnTxt .= "$"."$item = \"$value\"; \n";
}
$sReturnTxt .= "\n?>";
$fp = fopen( "$sSaveRoot/$sFilename.php", w );
fputs( $fp,$sReturnTxt);
fclose( $fp );
if( $fp )
{
return TRUE;
}
else
{
return FALSE;
}
}
function delete( $nNO, $sSaveRoot = './data' )
{
$aList = file("$sSaveRoot/list.cgi"); //리스트 파일에서 번호 지우기
$fp = fopen("$sSaveRoot/list.cgi", "w");
foreach( $aList as $value )
{
$value = trim( $value );
if( $nNO != $value )
{
fwrite($fp, "$value\n");
}
}
fclose($fp);
if( @unlink("$sSaveRoot/$nNO.php") )
{
return TRUE;
}
else
{
return FALSE;
}
}
function delDir( $dir )
{
$current_dir = opendir($dir);
while($entryname = readdir($current_dir))
{
if(is_dir("$dir/$entryname") and ($entryname != "." and $entryname!=".."))
{
$this->delDir("${dir}/${entryname}");
}
else if($entryname != "." and $entryname!="..")
{
unlink("${dir}/${entryname}");
}
}
closedir($current_dir);
rmdir(${dir});
}
function readData( $sDir, $sType = NULL )
{
$dbdir = opendir($sDir);
# 디렉토리만 찾기
if( $sType == 'dir' )
{
while($data = readdir($dbdir))
{
if(is_dir("$sDir/$data") && $data != "." && $data != "..")
{
$rtn[] = $data;
}
}
}
# 디렉토리 파일만 찾기
else if( $sType == 'file' )
{
while($data = readdir($dbdir))
{
if( $data != "." && $data != ".." && !is_dir("$sDir/$data") )
{
$rtn[] = $data;
}
}
}
# 파일/디렉토리 찾기
else
{
while($data = readdir($dbdir))
{
if( $data != "." && $data != "..")
{
$rtn[] = $data;
}
}
}
closedir( $dbdir );
return $rtn;
}
function obstart( $sBase, $sTargeRoot, $sTargetName )
{
ob_start();
include_once "$sBase";
$result = ob_get_contents();
ob_end_clean();
$fp = fopen( "$sTargeRoot/$sTargetName", w );
fputs( $fp,$result);
fclose( $fp );
}
# 2003-12-06 현재 원하는 디렉토리의 퍼미션 가져오기
function getPermition( $sObj )
{
return substr(decoct(fileperms($sObj)),2,3);
}
# 2003-12-06 지금 쓰고있는 디렉토리를 리턴
function getSelfDir( $sRoot )
{
$sBasename = basename($sRoot);
$RTN = str_replace( '/'.$sBasename, '', $sRoot );
return $RTN;
}
}
if( !$objFctl )
{
$objFctl = & new Filecontrol;
}
?>