Advertisement
jargon

Fast_Cat_II

Apr 14th, 2022
1,501
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.48 KB | None | 0 0
  1. <?php
  2.  
  3. function fast_cat( $path = '', $ext = array() )
  4. {
  5.     global $nen;
  6.  
  7.     if( is_string( $ext ) )
  8.     {
  9.         $ext = array( 0 => $ext );
  10.     }
  11.     if( ( !is_array( $ext ) ) | ( $ext === array() ) )
  12.     {
  13.         $ext = array( 0 => '' );
  14.     }
  15.    
  16.     $buffer = ( is_dir( $_SERVER[ 'DOCUMENT_ROOT' ] . '/' . $path ) ? array_diff( scandir( $_SERVER[ 'DOCUMENT_ROOT' ] . '/' . $path, SCANDIR_SORT_ASCENDING ), array( '..', '.' ) ) : array() );
  17.    
  18.     $cat = array();
  19.    
  20.     foreach( $buffer as $entry )
  21.     {
  22.         $hit = 0;
  23.         foreach( $ext as $test )
  24.         {
  25.        
  26.             if( strtolower( substr( $entry, -strlen( $test ), strlen( $test ) ) ) === strtolower( $test ) )
  27.             {
  28.                 $hit++;
  29.                 break;
  30.             }
  31.         }
  32.         if( $hit > 0 )
  33.         {
  34.             $cat[ count( $cat ) ] = $entry;
  35.         }
  36.     }
  37.  
  38.     natcasesort( $cat );
  39.     $cat = array_values( $cat );
  40.        
  41.     return $cat;
  42. }
  43.  
  44. function cat_rando( $cat )
  45. {
  46.     global $nen;
  47.  
  48.     if( count( $cat ) > 0 )
  49.     {
  50.         return $cat[ rand( 0, count( $cat ) - 1 ) ];
  51.     }
  52.     else
  53.     {
  54.         return '';
  55.     }
  56. }
  57.  
  58. function fast_cat_ii( $path = '', $ext = array(), $type = __FILE__ )
  59. {
  60.     if( !is_array( $ext ) )
  61.     {
  62.         $ext = array( $ext );
  63.     }
  64.    
  65.     $cat = array();
  66.    
  67.     $iterator = new DirectoryIterator( dirname( $type ) );
  68.    
  69.     while( $iterator -> valid() )
  70.     {
  71.         $test = $iterator -> getFilename();
  72.        
  73.         foreach( $ext as $test_ext )
  74.         {
  75.             if( strtolower( substr( $test, -strlen( $ext ) ) ) === strtolower( $test_ext ) )
  76.             {
  77.                 $cat[] = $test;
  78.                 break;
  79.             }
  80.         }
  81.         $iterator -> next();
  82.     }
  83.     return $cat;
  84. }
  85.  
  86. ?>
  87.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement