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