PageRenderTime 42ms CodeModel.GetById 19ms RepoModel.GetById 1ms app.codeStats 0ms

/Scripts/updatemediatypes.php

https://github.com/christianjul/FLOW3-Composer
PHP | 58 lines | 29 code | 12 blank | 17 comment | 1 complexity | 038fd3b58b33aa2c685c9d27f10ee96b MD5 | raw file
Possible License(s): BSD-3-Clause, LGPL-3.0
  1. <?php
  2. /* *
  3. * This script belongs to the FLOW3 framework. *
  4. * *
  5. * It is free software; you can redistribute it and/or modify it under *
  6. * the terms of the GNU Lesser General Public License, either version 3 *
  7. * of the License, or (at your option) any later version. *
  8. * *
  9. * The TYPO3 project - inspiring people to share! *
  10. * */
  11. /**
  12. * This script is used to update the available Internet Media Types in
  13. * Utility\MediaTypes from the mime.types file in the Apache HTTPD SVN
  14. * repository.
  15. *
  16. * It is a tool for use by the FLOW3 maintainers and can safely be ignored
  17. * by FLOW3 users.
  18. */
  19. $mediaTypesClassPathAndFilename = __DIR__ . '/../Classes/Utility/MediaTypes.php';
  20. $rawList = file_get_contents('http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/docs/conf/mime.types?revision=HEAD&view=co');
  21. $mediaTypesAndFileExtensions = array();
  22. foreach(explode("\n", $rawList) as $line) {
  23. preg_match_all('/^([a-z][^\s]+)\s+(.+)$/', $line, $matches, PREG_SET_ORDER);
  24. if (count($matches) === 1) {
  25. $mediaTypesAndFileExtensions[$matches[0][1]] = preg_split('/\s+/', $matches[0][2]);
  26. }
  27. }
  28. ksort($mediaTypesAndFileExtensions);
  29. $mediaTypesToFileExtensionsCode = '';
  30. $fileExtensionsAndMediaType = array();
  31. foreach ($mediaTypesAndFileExtensions as $mediaType => $fileExtensions) {
  32. $mediaTypesToFileExtensionsCode .= "\t\t'$mediaType' => array('" . implode("', '", $fileExtensions) . "'),\n";
  33. foreach ($fileExtensions as $fileExtension) {
  34. $fileExtensionsAndMediaType[$fileExtension] = $mediaType;
  35. }
  36. }
  37. ksort($fileExtensionsAndMediaType);
  38. $fileExtensionsToMediaTypeCode = '';
  39. foreach ($fileExtensionsAndMediaType as $fileExtension => $mediaType) {
  40. $fileExtensionsToMediaTypeCode .= "\t\t'$fileExtension' => '$mediaType',\n";
  41. }
  42. $classCode = file_get_contents($mediaTypesClassPathAndFilename);
  43. $classCode = preg_replace('/(extensionToMediaType = array\(\n)([^\)]+)(\t\);)/', '$1' . $fileExtensionsToMediaTypeCode . "\t);", $classCode);
  44. $classCode = preg_replace('/(mediaTypeToFileExtension = array\(\n)([^\;]+)(;)/', '$1' . $mediaTypesToFileExtensionsCode . "\t);", $classCode);
  45. file_put_contents($mediaTypesClassPathAndFilename, $classCode);
  46. ?>