Overview

Namespaces

  • aliuly
    • common
      • selectors
    • loader
  • xPaw

Classes

  • aliuly\common\ArmorItems
  • aliuly\common\BasicCli
  • aliuly\common\BasicHelp
  • aliuly\common\BasicPlugin
  • aliuly\common\ChatSession
  • aliuly\common\Cmd
  • aliuly\common\CmdSelector
  • aliuly\common\ExpandVars
  • aliuly\common\FastTransfer
  • aliuly\common\FileUtils
  • aliuly\common\FreezeSession
  • aliuly\common\GetMotd
  • aliuly\common\GetMotdAsyncTask
  • aliuly\common\InvisibleSession
  • aliuly\common\InvUtils
  • aliuly\common\ItemName
  • aliuly\common\mc
  • aliuly\common\mc2
  • aliuly\common\MoneyAPI
  • aliuly\common\MPMU
  • aliuly\common\Npc
  • aliuly\common\PermUtils
  • aliuly\common\PluginAsyncTask
  • aliuly\common\PluginCallbackTask
  • aliuly\common\PMScript
  • aliuly\common\QueryAsyncTask
  • aliuly\common\Rcon
  • aliuly\common\RconTask
  • aliuly\common\selectors\All
  • aliuly\common\selectors\AllEntity
  • aliuly\common\selectors\BaseSelector
  • aliuly\common\selectors\Random
  • aliuly\common\Session
  • aliuly\common\ShieldSession
  • aliuly\common\ShoppingCart
  • aliuly\common\SignUtils
  • aliuly\common\SkinUtils
  • aliuly\common\SpySession
  • aliuly\common\SubCommandMap
  • aliuly\common\TPUtils
  • aliuly\loader\Main
  • xPaw\MinecraftQuery

Exceptions

  • xPaw\MinecraftQueryException
  • Overview
  • Namespace
  • Class
 1: <?php
 2: namespace aliuly\common;
 3: 
 4: /**
 5:  * File Utilities
 6:  */
 7: abstract class FileUtils {
 8:     /**
 9:      * Recursive copy function
10:      * @param str src source path
11:      * @param str dst source path
12:      * @return bool
13:      */
14:     static public function cp_r($src,$dst) {
15:         if (is_link($src)) {
16:             $l = readlink($src);
17:             if (!symlink($l,$dst)) return false;
18:         } elseif (is_dir($src)) {
19:             if (!mkdir($dst)) return false;
20:             $objects = scandir($src);
21:             if ($objects === false) return false;
22:             foreach ($objects as $file) {
23:                 if ($file == "." || $file == "..") continue;
24:                 if (!self::cp_r($src.DIRECTORY_SEPARATOR.$file,$dst.DIRECTORY_SEPARATOR.$file))
25:                     return false;
26:             }
27:         } else {
28:             if (!copy($src,$dst)) return false;
29:         }
30:         return true;
31:     }
32:     /**
33:      * Recursive delete function
34:      * @param str path
35:      * @return bool
36:      */
37:     static public function rm_r($path) {
38:         if (!is_link($path) && is_dir($path)) {
39:             $objects = scandir($path);
40:             if ($objects === false) return false;
41:             foreach ($objects as $file) {
42:                 if ($file == "." || $file == "..") continue;
43:                 if (!self::rm_r($path.DIRECTORY_SEPARATOR.$file)) return false;
44:             }
45:             return rmdir($path);
46:         }
47:         return unlink($path);
48:     }
49:     /**
50:      * Creates a temporary directory
51:      * @param str $dir
52:      * @param str $prefix
53:      * @param int $mode
54:      * @return str
55:      */
56:     static public function tempdir($dir, $prefix='', $mode=0700) {
57:         if (substr($dir, -1) != '/') $dir .= '/';
58:         do {
59:             $path = $dir.$prefix.mt_rand(0, 9999999);
60:         } while (!mkdir($path, $mode));
61:         return $path;
62:     }
63: 
64: }
65: 
API documentation generated by ApiGen