* @version 1.0.0
* @license http://gnu.org/licenses/lgpl.txt/ GNU Lesser General Public License (LGPL)
*/
class eiaf {
public $eiafconfig = array(
"rootdir" => "data/",
"showerrors" => "no",
"del404" => "[eiaf.class.del] $time ERROR: File \"$eiafconfig[rootdir]$source\" not found
\n",
"get404" => "[eiaf.class.get] $time ERROR: File \"$eiafconfig[rootdir]$source\" not found
\n",
"put404" => "[eiaf.class.put] $time ERROR: File \"$eiafconfig[rootdir]$source\" not found
\n",
"mv404" => "[eiaf.class.mv] $time ERROR: File \"$eiafconfig[rootdir]$source\" not found
\n",
"destinationexists" => "[eiaf.class.mvdir] $time ERROR: Folder \"$eiafconfig[rootdir]$source\" not found
\n",
"mvdir404" => "[eiaf.class.mvdir] $time ERROR: Directory \"$eiafconfig[rootdir]$source\" not found
\n",
"direxists" => "[eiaf.class.putdir] $time ERROR: Directory \"$eiafconfig[rootdir]$source\" already exists
\n",
"dirnotempty" => "[eiaf.class.deldir] $time ERROR: Directory \"$eiafconfig[rootdir]$source\" is not empty\n",
"dir404" => "[eiaf.class.deldir] $time ERROR: Directory \"$eiafconfig[rootdir]$source\" not found
\n",
);
function error($message, $source){
$time = time();
$error = $message;
if($this->eiafconfig["showerrors"]=="yes"){
$this->put("errors.log", $error, "append");
$return = $error;
}else{
$this->put("errors.log", $error, "append");
$return = false;
}
return $return;
}
function get($source){
if(file_exists($this->eiafconfig["rootdir"].$source)){
$return = file_get_contents($this->eiafconfig["rootdir"].$source);
}else{
$return = $this->error($this->eiafconfig["get404"], $source);
}
return $return;
}
function put($source, $input, $method){
if(file_exists($this->eiafconfig["rootdir"].$source) || $method=="create"){
switch($method){
case "append":
$mode = "a";
break;
case "prepend":
$mode = "r+";
break;
case "rewrite":
$mode = "w";
break;
case "create":
$mode = "x";
break;
}
$stream = fopen($source, $mode);
fputs($stream, $input);
fclose($stream);
}else{
$return = $this->error($this->eiafconfig["put404"], $source);
}
return $return;
}
function del($source){
if(file_exists($this->eiafconfig["rootdir"].$source)){
unlink($this->eiafconfig["rootdir"].$source);
$return = true;
}else{
$return = $this->error($this->eiafconfig["del404"], $source);
}
return $return;
}
function mv($source, $destination){
if(file_exists($this->eiafconfig["rootdir"].$source)){
if(!file_exists($this->eiafconfig["rootdir"].$destination)){
$data = $this->get($source);
$this->put($destination, $data, "create");
unlink($source);
$return = true;
}else{
$return = $this->error($this->eiafconfig["destinationexists"], $destination);
}
}else{
$return = $this->error($this->eiafconfig["mv404"], $source);
}
return $return;
}
function mvdir($source, $destination){
if(file_exists($this->eiafconfig["rootdir"].$source)){
if(!file_exists($this->eiafconfig["rootdir"].$destination)){
rename($source, $destination);
$return = true;
}else{
$return = $this>error($this->eiafconfig["destinationexists"], $destination);
}
}else{
$return = $this->error($this->eiafconfig["mvdir404"], $destination);
}
return $return;
}
function putdir($destination){
if(!file_exists($this->eiafconfig["rootdir"].$destination)){
mkdir($this->eiafconfig["rootdir"].$destination);
$return = true;
}else{
$return = $this->error($this->eiafconfig["direxists"], $destination);
}
return $return;
}
function deldir($source, $force="no"){
if(file_exists($source)){
if(strrpos($source, '/') == strlen($source) - 1){
$slash = null;
}else{
$slash = "/";
}
if(!glob($this->eiafconfig["rootdir"].$source.$slash."*")){
rmdir($source);
$return = true;
}elseif($force="yes"){
foreach(glob($this->eiafconfig["rootdir"].$source.$slash."*") as $filename){
$this->del($filename);
}
rmdir($source);
$return = true;
}else{
$return = $this->error($this->eiafconfig["dirnotempty"], $source);
}
}else{
$return = $this->error($this->eiafconfig["dir404"], $source);
}
return $return;
}
}
?>