define('PREG_FIND_RECURSIVE', 1); define('PREG_FIND_DIRMATCH', 2); define('PREG_FIND_FULLPATH', 4); define('PREG_FIND_NEGATE', 8); define('PREG_FIND_DIRONLY', 16); define('PREG_FIND_RETURNASSOC', 32); define('PREG_FIND_SORTDESC', 64); define('PREG_FIND_SORTKEYS', 128); define('PREG_FIND_SORTBASENAME', 256); # requires PREG_FIND_RETURNASSOC define('PREG_FIND_SORTMODIFIED', 512); # requires PREG_FIND_RETURNASSOC define('PREG_FIND_SORTFILESIZE', 1024); # requires PREG_FIND_RETURNASSOC define('PREG_FIND_SORTDISKUSAGE', 2048); # requires PREG_FIND_RETURNASSOC // PREG_FIND_RECURSIVE - go into subdirectorys looking for more files // PREG_FIND_DIRMATCH - return directorys that match the pattern also // PREG_FIND_DIRONLY - return only directorys that match the pattern (no files) // PREG_FIND_FULLPATH - search for the pattern in the full path (dir+file) // PREG_FIND_NEGATE - return files that don't match the pattern // PREG_FIND_RETURNASSOC - Instead of just returning a plain array of matches, // return an associative array with file stats // // You can also request to have the results sorted based on various criteria // By default if any sorting is done, it will be sorted in ascending order. // You can reverse this via use of: // PREG_FIND_SORTDESC - Reverse order of sort // PREG_FILE_SORTKEYS - Sort on the keyvalues or non-assoc array results // The following sorts *require* PREG_FIND_RETURNASSOC to be used as they are // sorting on values stored in the constructed associative array // PREG_FIND_SORTBASENAME - Sort the results in alphabetical order on filename // PREG_FIND_SORTMODIFIED - Sort the results in last modified timestamp order // PREG_FIND_SORTFILESIZE - Sort the results based on filesize // PREG_FILE_SORTDISKUSAGE - Sort based on the amount of disk space taken // to use more than one simply seperate them with a | character // Search for files matching $pattern in $start_dir. // if args contains PREG_FIND_RECURSIVE then do a recursive search // return value is an associative array, the key of which is the path/file // and the value is the stat of the file. Function preg_find($pattern, $start_dir='.', $args=NULL) { static $depth = -1; ++$depth; $files_matched = array(); $fh = opendir($start_dir); while (($file = readdir($fh)) !== false) { if (strcmp($file, '.')==0 || strcmp($file, '..')==0) continue; $filepath = $start_dir . '/' . $file; if (preg_match($pattern, ($args & PREG_FIND_FULLPATH) ? $filepath : $file)) { $doadd = is_file($filepath) || (is_dir($filepath) && ($args & PREG_FIND_DIRMATCH)) || (is_dir($filepath) && ($args & PREG_FIND_DIRONLY)); if ($args & PREG_FIND_DIRONLY && $doadd && !is_dir($filepath)) $doadd = false; if ($args & PREG_FIND_NEGATE) $doadd = !$doadd; if ($doadd) { if ($args & PREG_FIND_RETURNASSOC) { // return more than just the filenames $fileres = array(); if (function_exists('stat')) { $fileres['stat'] = stat($filepath); $fileres['du'] = $fileres['stat']['blocks'] * 512; } if (function_exists('fileowner')) $fileres['uid'] = fileowner($filepath); if (function_exists('filegroup')) $fileres['gid'] = filegroup($filepath); if (function_exists('filetype')) $fileres['filetype'] = filetype($filepath); if (function_exists('mime_content_type')) $fileres['mimetype'] = mime_content_type($filepath); if (function_exists('dirname')) $fileres['dirname'] = dirname($filepath); if (function_exists('basename')) $fileres['basename'] = basename($filepath); if (isset($fileres['uid']) && function_exists('posix_getpwuid')) $fileres['owner'] = posix_getpwuid ($fileres['uid']); $files_matched[$filepath] = $fileres; } else array_push($files_matched, $filepath); } } if ( is_dir($filepath) && ($args & PREG_FIND_RECURSIVE) ) { $files_matched = array_merge($files_matched, preg_find($pattern, $filepath, $args)); } } closedir($fh); // Before returning check if we need to sort the results. if (($depth==0) && ($args & (PREG_FIND_SORTKEYS|PREG_FIND_SORTBASENAME|PREG_FIND_SORTMODIFIED|PREG_FIND_SORTFILESIZE|PREG_FIND_SORTDISKUSAGE)) ) { $order = ($args & PREG_FIND_SORTDESC) ? 1 : -1; $sortby = ''; if ($args & PREG_FIND_RETURNASSOC) { if ($args & PREG_FIND_SORTMODIFIED) $sortby = "['stat']['mtime']"; if ($args & PREG_FIND_SORTBASENAME) $sortby = "['basename']"; if ($args & PREG_FIND_SORTFILESIZE) $sortby = "['stat']['size']"; if ($args & PREG_FIND_SORTDISKUSAGE) $sortby = "['du']"; } $filesort = create_function('$a,$b', "\$a1=\$a$sortby;\$b1=\$b$sortby; if (\$a1==\$b1) return 0; else return (\$a1<\$b1) ? $order : 0- $order;"); uasort($files_matched, $filesort); } --$depth; return $files_matched; } ?>
|
|---|
Constituents - ZinsdelenCategories of adverbial adjunct - Soorten bijwoordelijke bepalingThe most common categories of adverbial adjuncts are:
time As the examples below show, aAdverbial adjuncts can be single >>adverbs, but they can also be prepositional phrases, or even subordinate clauses. Adverbial adjunct of time - bijwoordelijke bepaling van tijd: Adjuncts of time describe when an action is taking place.
In the first example the adjunct is an >>adverb of time, in the second it is a prepositional phrase (starting with the >>preposition over), and in the last example the adjunct is a subordinate clause (starting with the >>subordinating conjunction wanneer). Adverbial adjunct of manner - bijwoordelijke bepaling van hoedanigheid Adjuncts of manner describe in what way the action is taking place.
In the first example the adjunct is an >>adverb, in the second it is a prepositional phrase (starting with the >>preposition met). Adverbial adjunct of place - bijwoordelijke bepaling van plaats These adjuncts describe where the action is taking place.
In example no. 1 the adjunct is an >>adverb, in no. 2 it is a prepositional phrase (starting with the >>preposition in), and in the last example the adjunct is a subordinate clause (starting with the relative adverb waar). Adverbial adjunct of purpose - bijwoordelijke bepaling van doel These adjuncts describe for what reason the action is taking place.
In example no. 1 the adjunct is a subclause (starting with the >>conjunction om), in no. 2 it is a prepositional phrase (starting with the >>preposition voor), and in the last example the adjunct is the >>conjunctional adverb daarom. The negative >>adverb niet is an adverbial adjunct of negation (bijwoordelijke bepaling van ontkenning):
There are two other negative adverbs, nooit ('never') and nergens ('nowhere'). However, they are not adverbs of negation: nooit is a negative adverb of time and nergens is a negative adverb of place. Adverbial adjunct of reason - bijwoordelijke bepaling van causaliteit/reden This type of adjunct expresses a cause or a reason:
In example no. 1 the adjunct is a subclause (starting with the >>conjunction omdat), and in nos. 2 and 3 it is a prepositional phrase (starting with the >>prepositions in and door). In the last example, the adjunct is the >>adverb derhalve. Adverbial adjunct of relation - bijwoordelijke bepaling van verhouding This type of adjunct expresses a relation:
In example no. 1 the adjunct is a prepositional phrase (starting with the >>preposition in), and in no. 2 it is a subclause (starting with the >>subordinating conjunction naarmate). Adverbial adjunct of degree - bijwoordelijke bepaling van graad This type of adjunct expresses a degree. It addresses the question ‘To what extent...?':
In example no. 1 the adjunct is an >>adverb (hard), and in no. 2 it is a prepositional phrase (starting with the >>preposition tot). Back to home.
|