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 }