* include("cssmin.php"); * file_put_contents("path/to/target.css", cssmin::minify(file_get_contents("path/to/source.css"))); * * -- * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * -- * * @package cssmin * @author Joe Scylla * @copyright 2008 Joe Scylla * @license http://opensource.org/licenses/mit-license.php MIT License * @version 1.0 (2008-01-31) */ class cssmin { /** * Minifies stylesheet definitions * * @param string $v Stylesheet definitions as string * @return string Minified stylesheet definitions */ static function minify($v) { $v = trim($v); $v = str_replace("\r\n", "\n", $v); $search = array("/\/\*[\d\D]*?\*\/|\t+/", "/\s+/", "/\}\s+/"); $replace = array(null, " ", "}\n"); $v = preg_replace($search, $replace, $v); $search = array("/\\;\s/", "/\s*\{\\s*/", "/\\:\s+\\#/", "/,\s+/i", "/\\:\s+\\\'/i", "/\\:\s+([0-9A-Z\-]+)/i"); $replace = array(";", "{", ":#", ",", ":\'", ":$1"); $v = preg_replace($search, $replace, $v); $v = str_replace("\n", null, $v); return $v; } }