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; } ?>
|
|---|
Sentence types - ZinstypenFormation of the passive predicateThere are different rules for the formation of the passive in:
(a) the present and past (imperfect) tenses; The present tense of the passive is formed by combining the past participle of a verb with a special auxiliary: worden. Have a look at the following active sentence. The >>subject is underlined, the finite verb is in italics and the >>direct object is bold:
To turn this into a passive sentence, you undertake the following steps: 1. Find the direct object, because this becomes the grammatical subject in the passive sentence; de auto2. Find the finite verb; wast 3. determine the infinitive; wassen 4. determine the past participle; gewassen 5. Decide on the form of the auxiliary worden: it has to match the subject in number third person singular) and it has to match the tense ( present tense); wordt 6. Find the subject, because it can be included in the passive sentence with the preposition door; Marieke 7. Combine these elements according to the rules for sentence formation in Dutch:
or
In the past tense the appropriate form of the verb worden (plus the past participle of the main verb) is used. Worden is a >>strong verb: the vowel changes from o to e: werd (singular)/werden (plural).
PERFECT TENSE and PLUPERFECT TENSE The perfect tenses of the passive are formed by combining the past participle of a verb with a special auxiliary, which is different from the special auxiliary for the present and the past tense. The passive auxiliary for the present and the past is worden, whereas the passive auxiliary for the (plu)perfect it is zijn. This is different from English (and French and German too) where there is one passive auxiliary for all tenses: to be.The form of zijn must match the subject of the passive sentence in number: in the singular ben (1st person or 2nd person with >inversion), bent (2nd person) or is (3rd person); in the plural zijn.
In the pluperfect the imperfect tense forms of zijn are used: was in the singular and waren in the plural.
The use of the perfect tense in a passive sentence has >repercussions for the agent of such a sentence. There is no future 'tense' in Dutch. Instead, the future is expressed in different ways. One of the most common ways to express future aspect is by using a finite form of the modal verb zullen, plus the infinitive of the 'action' verb. In the future passive the auxiliary worden is included in this as well. So in the future passive the appropriate tense of the modal verb zullen is used along with the infinitive of worden plus the past participle of the main verb. As with the present tense of the passive voice, the form of zullen matches the subject of the passive sentence in number. It works the same for other modal verbs (for example kunnen, moeten and mogen).
The auxiliary worden and the past participle of the 'action' verb occur in an arbitrary order: Het boek zal worden gepubliceerd is just as acceptable as Het boek zal gepubliceerd worden. Back to home.
|