Mercurial > hg > isophonics-drupal-site
comparison core/lib/Drupal/Component/FileSystem/FileSystem.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4c8ae668cc8c |
---|---|
1 <?php | |
2 | |
3 namespace Drupal\Component\FileSystem; | |
4 | |
5 /** | |
6 * Provides file system functions. | |
7 */ | |
8 class FileSystem { | |
9 | |
10 /** | |
11 * Discovers a writable system-appropriate temporary directory. | |
12 * | |
13 * @return string|false | |
14 * A string containing the path to the temporary directory, or FALSE if no | |
15 * suitable temporary directory can be found. | |
16 */ | |
17 public static function getOsTemporaryDirectory() { | |
18 $directories = []; | |
19 | |
20 // Has PHP been set with an upload_tmp_dir? | |
21 if (ini_get('upload_tmp_dir')) { | |
22 $directories[] = ini_get('upload_tmp_dir'); | |
23 } | |
24 | |
25 // Operating system specific dirs. | |
26 if (substr(PHP_OS, 0, 3) == 'WIN') { | |
27 $directories[] = 'c:\\windows\\temp'; | |
28 $directories[] = 'c:\\winnt\\temp'; | |
29 } | |
30 else { | |
31 $directories[] = '/tmp'; | |
32 } | |
33 // PHP may be able to find an alternative tmp directory. | |
34 $directories[] = sys_get_temp_dir(); | |
35 | |
36 foreach ($directories as $directory) { | |
37 if (is_dir($directory) && is_writable($directory)) { | |
38 // Both sys_get_temp_dir() and ini_get('upload_tmp_dir') can return paths | |
39 // with a trailing directory separator. | |
40 return rtrim($directory, DIRECTORY_SEPARATOR); | |
41 } | |
42 } | |
43 return FALSE; | |
44 } | |
45 | |
46 } |