mirror of
https://github.com/mrclay/minify.git
synced 2025-08-14 01:54:11 +02:00
unicode flag everywhere to fix more issues with and MAMP
This commit is contained in:
@@ -99,36 +99,36 @@ class Minify_HTML
|
|||||||
|
|
||||||
// replace SCRIPTs (and minify) with placeholders
|
// replace SCRIPTs (and minify) with placeholders
|
||||||
$this->_html = preg_replace_callback(
|
$this->_html = preg_replace_callback(
|
||||||
'/(\\s*)<script(\\b[^>]*?>)([\\s\\S]*?)<\\/script>(\\s*)/i'
|
'/(\\s*)<script(\\b[^>]*?>)([\\s\\S]*?)<\\/script>(\\s*)/iu'
|
||||||
,array($this, '_removeScriptCB')
|
,array($this, '_removeScriptCB')
|
||||||
,$this->_html);
|
,$this->_html);
|
||||||
|
|
||||||
// replace STYLEs (and minify) with placeholders
|
// replace STYLEs (and minify) with placeholders
|
||||||
$this->_html = preg_replace_callback(
|
$this->_html = preg_replace_callback(
|
||||||
'/\\s*<style(\\b[^>]*>)([\\s\\S]*?)<\\/style>\\s*/i'
|
'/\\s*<style(\\b[^>]*>)([\\s\\S]*?)<\\/style>\\s*/iu'
|
||||||
,array($this, '_removeStyleCB')
|
,array($this, '_removeStyleCB')
|
||||||
,$this->_html);
|
,$this->_html);
|
||||||
|
|
||||||
// remove HTML comments (not containing IE conditional comments).
|
// remove HTML comments (not containing IE conditional comments).
|
||||||
$this->_html = preg_replace_callback(
|
$this->_html = preg_replace_callback(
|
||||||
'/<!--([\\s\\S]*?)-->/'
|
'/<!--([\\s\\S]*?)-->/u'
|
||||||
,array($this, '_commentCB')
|
,array($this, '_commentCB')
|
||||||
,$this->_html);
|
,$this->_html);
|
||||||
|
|
||||||
// replace PREs with placeholders
|
// replace PREs with placeholders
|
||||||
$this->_html = preg_replace_callback('/\\s*<pre(\\b[^>]*?>[\\s\\S]*?<\\/pre>)\\s*/i'
|
$this->_html = preg_replace_callback('/\\s*<pre(\\b[^>]*?>[\\s\\S]*?<\\/pre>)\\s*/iu'
|
||||||
,array($this, '_removePreCB')
|
,array($this, '_removePreCB')
|
||||||
,$this->_html);
|
,$this->_html);
|
||||||
|
|
||||||
// replace TEXTAREAs with placeholders
|
// replace TEXTAREAs with placeholders
|
||||||
$this->_html = preg_replace_callback(
|
$this->_html = preg_replace_callback(
|
||||||
'/\\s*<textarea(\\b[^>]*?>[\\s\\S]*?<\\/textarea>)\\s*/i'
|
'/\\s*<textarea(\\b[^>]*?>[\\s\\S]*?<\\/textarea>)\\s*/iu'
|
||||||
,array($this, '_removeTextareaCB')
|
,array($this, '_removeTextareaCB')
|
||||||
,$this->_html);
|
,$this->_html);
|
||||||
|
|
||||||
// trim each line.
|
// trim each line.
|
||||||
// @todo take into account attribute values that span multiple lines.
|
// @todo take into account attribute values that span multiple lines.
|
||||||
$this->_html = preg_replace('/^\\s+|\\s+$/m', '', $this->_html);
|
$this->_html = preg_replace('/^\\s+|\\s+$/mu', '', $this->_html);
|
||||||
|
|
||||||
// remove ws around block/undisplayed elements
|
// remove ws around block/undisplayed elements
|
||||||
$this->_html = preg_replace('/\\s+(<\\/?(?:area|article|aside|base(?:font)?|blockquote|body'
|
$this->_html = preg_replace('/\\s+(<\\/?(?:area|article|aside|base(?:font)?|blockquote|body'
|
||||||
@@ -139,12 +139,12 @@ class Minify_HTML
|
|||||||
|
|
||||||
// remove ws outside of all elements
|
// remove ws outside of all elements
|
||||||
$this->_html = preg_replace(
|
$this->_html = preg_replace(
|
||||||
'/>(\\s(?:\\s*))?([^<]+)(\\s(?:\s*))?</'
|
'/>(\\s(?:\\s*))?([^<]+)(\\s(?:\s*))?</u'
|
||||||
,'>$1$2$3<'
|
,'>$1$2$3<'
|
||||||
,$this->_html);
|
,$this->_html);
|
||||||
|
|
||||||
// use newlines before 1st attribute in open tags (to limit line lengths)
|
// use newlines before 1st attribute in open tags (to limit line lengths)
|
||||||
$this->_html = preg_replace('/(<[a-z\\-]+)\\s+([^>]+>)/i', "$1\n$2", $this->_html);
|
$this->_html = preg_replace('/(<[a-z\\-]+)\\s+([^>]+>)/iu', "$1\n$2", $this->_html);
|
||||||
|
|
||||||
// fill placeholders
|
// fill placeholders
|
||||||
$this->_html = str_replace(
|
$this->_html = str_replace(
|
||||||
@@ -198,7 +198,7 @@ class Minify_HTML
|
|||||||
$openStyle = "<style{$m[1]}";
|
$openStyle = "<style{$m[1]}";
|
||||||
$css = $m[2];
|
$css = $m[2];
|
||||||
// remove HTML comments
|
// remove HTML comments
|
||||||
$css = preg_replace('/(?:^\\s*<!--|-->\\s*$)/', '', $css);
|
$css = preg_replace('/(?:^\\s*<!--|-->\\s*$)/u', '', $css);
|
||||||
|
|
||||||
// remove CDATA section markers
|
// remove CDATA section markers
|
||||||
$css = $this->_removeCdata($css);
|
$css = $this->_removeCdata($css);
|
||||||
@@ -226,7 +226,7 @@ class Minify_HTML
|
|||||||
|
|
||||||
// remove HTML comments (and ending "//" if present)
|
// remove HTML comments (and ending "//" if present)
|
||||||
if ($this->_jsCleanComments) {
|
if ($this->_jsCleanComments) {
|
||||||
$js = preg_replace('/(?:^\\s*<!--\\s*|\\s*(?:\\/\\/)?\\s*-->\\s*$)/', '', $js);
|
$js = preg_replace('/(?:^\\s*<!--\\s*|\\s*(?:\\/\\/)?\\s*-->\\s*$)/u', '', $js);
|
||||||
}
|
}
|
||||||
|
|
||||||
// remove CDATA section markers
|
// remove CDATA section markers
|
||||||
@@ -253,6 +253,6 @@ class Minify_HTML
|
|||||||
|
|
||||||
protected function _needsCdata($str)
|
protected function _needsCdata($str)
|
||||||
{
|
{
|
||||||
return ($this->_isXhtml && preg_match('/(?:[<&]|\\-\\-|\\]\\]>)/', $str));
|
return ($this->_isXhtml && preg_match('/(?:[<&]|\\-\\-|\\]\\]>)/u', $str));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user