| 
<?phpnamespace Jackbooted\Util;
 
 use \Jackbooted\Config\Cfg;
 /**
 * @copyright Confidential and copyright (c) 2016 Jackbooted Software. All rights reserved.
 *
 * Written by Brett Dutton of Jackbooted Software
 * brett at brettdutton dot com
 *
 * This software is written and distributed under the GNU General Public
 * License which means that its source code is freely-distributed and
 * available to the general public.
 *
 * PHP Extensions utility class
 */
 
 class PHPExt extends \Jackbooted\Util\JB {
 
 public static function is_assoc ( $array ) {
 if ( ! is_array ( $array ) ) {
 return false;
 }
 
 foreach ( array_keys ( $array ) as $k => $v ) {
 if ( $k !== $v ) {
 return true;
 }
 }
 
 return false;
 }
 public static function getTempDir () {
 if ( preg_match ( '/^(RADWEB|JACKBOOTWEB).*$/', Cfg::get ( 'version' ) ) ) {
 $tmpDir = Cfg::get ( 'tmp_path' );
 }
 else {
 $tmpDir = '/tmp';
 
 if ( function_exists ( 'sys_get_temp_dir' ) ) {
 $tmpDir = sys_get_temp_dir();
 }
 else {
 foreach (  [ 'TMP', 'TEMP', 'TMPDIR' ] as $envVar ) {
 if ( ( $temp = getenv ( $envVar ) ) !== false ) {
 $tmpDir = $temp;
 break;
 }
 }
 }
 }
 
 // ensure that there is no trailing slash (Standard)
 $lastChar = substr ( $tmpDir, -1 );
 if ( $lastChar == '/' || $lastChar == '\\' ) $tmpDir = substr ( $tmpDir, 0, -1 );
 return $tmpDir;
 }
 
 public static function dirSearch ( $dir, $matchesExp=null ) {
 $handle = opendir ( $dir );
 $fileList =  [];
 while ( false !== ( $file = readdir ( $handle ) ) ) {
 if ( strpos ( $file, '.' ) === 0 ) continue;
 if ( $matchesExp != null && ! preg_match ( $matchesExp, $file ) ) continue;
 
 $fullPathName = $dir . '/' . $file;
 if ( is_dir ( $fullPathName ) ) {
 $fileList = array_merge ( self::dirSearch ( $fullPathName ), $fileList );
 }
 else {
 $fileList[] = $fullPathName;
 }
 }
 closedir ( $handle );
 return $fileList;
 }
 }
 |