Ibrahim Hussein
Ibrahim Hussein

Reputation: 1319

php glob() alternatives

I have a wordpress theme that uses glob() function. THe problem is my hosting company has disabled glob(). how to modify the code so that it works using other php functions (opendir() maybe ?)

here is the code:

function yiw_get_tabs_path_files() {          
$theme_files_path = YIW_THEME_FUNC_DIR . 'theme-options/';
$core_files_path  = YIW_FRAMEWORK_PATH . 'theme-options/options/';

$tabs = array();

foreach ( glob( $theme_files_path . '*.php' ) as $filename ) {
    preg_match( '/(.*)-options\.(.*)/', basename( $filename ), $filename_parts );
    $tab = $filename_parts[1];

    $tabs[$tab] = $filename;
}

foreach ( glob( $core_files_path . '*.php' ) as $filename ) {
    preg_match( '/(.*)-options\.(.*)/', basename( $filename ), $filename_parts );
    $tab = $filename_parts[1];

    $tabs[$tab] = $filename;
}

return $tabs;

}

Upvotes: 1

Views: 2778

Answers (1)

wen
wen

Reputation: 3858

You can use the combination of opendir, readdir and closedir as you suggested.

// open the directory
if ($handle = opendir($file_path)) {

  // iterate over the directory entries
  while (false !== ($entry = readdir($handle))) {

    // match on .php extension
    if (preg_match('/\.php$/', $entry) {
      ...
    }
  }

  // close the directory
  closedir($handle);
}

If these too are disabled, you can try the object-oriented Directory class.

Upvotes: 1

Related Questions