# wp-optimize/3.2.3/vendor/mrclay/minify/utils.php

WP-Optimize – Cache, Compress images, Minify &amp; Clean database to boost page speed &amp; performance, version 3.2.3. 79 lines.

- Page: https://pluginprobe.com/plugins/wp-optimize/3.2.3/code/vendor/mrclay/minify/utils.php
- Raw: https://pluginprobe.com/plugins/wp-optimize/3.2.3/raw/vendor/mrclay/minify/utils.php
- Modified: 2021-06-07T22:42:16+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/wp-optimize/3.2.3/code/vendor/mrclay/minify/utils.php#L10-L20`.

```php
<?php
/**
 * Utility functions for generating URIs in HTML files
 *
 * @warning These functions execute min/groupsConfig.php, sometimes multiple times.
 * You must make sure that functions are not redefined, and if your use custom sources,
 * you must require_once __DIR__ . '/lib/Minify/Source.php' so that
 * class is available.
 *
 * @package Minify
 */

require __DIR__ . '/bootstrap.php';

/*
 * Get an HTML-escaped Minify URI for a group or set of files. By default, URIs
 * will contain timestamps to allow far-future Expires headers.
 *
 * <code>
 * <link rel="stylesheet" type="text/css" href="<?= Minify_getUri('css'); ?>" />
 * <script src="<?= Minify_getUri('js'); ?>"></script>
 * <script src="<?= Minify_getUri(array(
 *      '//scripts/file1.js'
 *      ,'//scripts/file2.js'
 * )); ?>"></script>
 * </code>
 *
 * @param mixed $keyOrFiles a group key or array of file paths/URIs
 * @param array $opts options:
 *   'farExpires' : (default true) append a modified timestamp for cache revving
 *   'debug' : (default false) append debug flag
 *   'charset' : (default 'UTF-8') for htmlspecialchars
 *   'minAppUri' : (default '/min') URI of min directory
 *   'rewriteWorks' : (default true) does mod_rewrite work in min app?
 *   'groupsConfigFile' : specify if different
 * @return string
 */
function Minify_getUri($keyOrFiles, $opts = array())
{
    return Minify_HTML_Helper::getUri($keyOrFiles, $opts);
}


/**
 * Get the last modification time of several source js/css files. If you're
 * caching the output of Minify_getUri(), you might want to know if one of the
 * dependent source files has changed so you can update the HTML.
 *
 * Since this makes a bunch of stat() calls, you might not want to check this
 * on every request.
 *
 * @param array $keysAndFiles group keys and/or file paths/URIs.
 * @return int latest modification time of all given keys/files
 */
function Minify_mtime($keysAndFiles, $groupsConfigFile = null)
{
    $gc = null;
    if (! $groupsConfigFile) {
        $groupsConfigFile = Minify_HTML_Helper::app()->groupsConfigPath;
    }
    $sources = array();
    foreach ($keysAndFiles as $keyOrFile) {
        if (is_object($keyOrFile)
            || 0 === strpos($keyOrFile, '/')
            || 1 === strpos($keyOrFile, ':\\')) {
            // a file/source obj
            $sources[] = $keyOrFile;
        } else {
            if (! $gc) {
                $gc = (require $groupsConfigFile);
            }
            foreach ($gc[$keyOrFile] as $source) {
                $sources[] = $source;
            }
        }
    }
    return Minify_HTML_Helper::getLastModified($sources);
}

```
