/** * Compress HTML * * This is a heavy regex-based removal of whitespace, unnecessary comments and * tokens. IE conditional comments are preserved. There are also options to have * STYLE and SCRIPT blocks compressed by callback functions. * * A test suite is available. * * @package Minify * @author Stephen Clay */ namespace LiteSpeed\Lib; defined( 'WPINC' ) || exit; class HTML_MIN { /** * @var string */ protected $_html = ''; /** * @var boolean */ protected $_jsCleanComments = true; protected $_skipComments = array(); /** * "Minify" an HTML page * * @param string $html * * @param array $options * * 'cssMinifier' : (optional) callback function to process content of STYLE * elements. * * 'jsMinifier' : (optional) callback function to process content of SCRIPT * elements. Note: the type attribute is ignored. * * 'xhtml' : (optional boolean) should content be treated as XHTML1.0? If * unset, minify will sniff for an XHTML doctype. * * @return string */ public static function minify( $html, $options = array() ) { $min = new self( $html, $options ); return $min->process(); } /** * Create a minifier object * * @param string $html * * @param array $options * * 'cssMinifier' : (optional) callback function to process content of STYLE * elements. * * 'jsMinifier' : (optional) callback function to process content of SCRIPT * elements. Note: the type attribute is ignored. * * 'jsCleanComments' : (optional) whether to remove HTML comments beginning and end of script block * * 'xhtml' : (optional boolean) should content be treated as XHTML1.0? If * unset, minify will sniff for an XHTML doctype. */ public function __construct( $html, $options = array() ) { $this->_html = str_replace( "\r\n", "\n", trim( $html ) ); if ( isset( $options['xhtml'] ) ) { $this->_isXhtml = (bool) $options['xhtml']; } if ( isset( $options['cssMinifier'] ) ) { $this->_cssMinifier = $options['cssMinifier']; } if ( isset( $options['jsMinifier'] ) ) { $this->_jsMinifier = $options['jsMinifier']; } if ( isset( $options['jsCleanComments'] ) ) { $this->_jsCleanComments = (bool) $options['jsCleanComments']; } if ( isset( $options['skipComments'] ) ) { $this->_skipComments = $options['skipComments']; } } /** * Minify the markeup given in the constructor * * @return string */ public function process() { if ( $this->_isXhtml === null ) { $this->_isXhtml = ( false !== strpos( $this->_html, '_html); // fill placeholders $this->_html = str_replace( array_keys( $this->_placeholders ), array_values( $this->_placeholders ), $this->_html ); // issue 229: multi-pass to catch scripts that didn't get replaced in textareas $this->_html = str_replace( array_keys( $this->_placeholders ), array_values( $this->_placeholders ), $this->_html ); return $this->_html; } /** * From LSCWP 6.2: Changed the function to test for special comments that will be skipped. See: https://github.com/litespeedtech/lscache_wp/pull/622 */ protected function _commentCB( $m ) { // If is IE conditional comment return it. if ( 0 === strpos( $m[1], '[' ) || false !== strpos( $m[1], ' HTML Settings -> HTML Keep comments if ( count( $this->_skipComments ) > 0 ) { foreach ( $this->_skipComments as $comment ) { if ( $comment && strpos( $m[1], $comment ) !== false ) { return $m[0]; } } } // Comment can be removed. return ''; } protected function _reservePlace( $content ) { $placeholder = '%' . $this->_replacementHash . count( $this->_placeholders ) . '%'; $this->_placeholders[ $placeholder ] = $content; return $placeholder; } protected $_isXhtml = null; protected $_replacementHash = null; protected $_placeholders = array(); protected $_cssMinifier = null; protected $_jsMinifier = null; protected function _removePreCB( $m ) { return $this->_reservePlace( "_reservePlace( "\\s*$)/', '', $css ); // remove CDATA section markers $css = $this->_removeCdata( $css ); // minify $minifier = $this->_cssMinifier ? $this->_cssMinifier : 'trim'; $css = call_user_func( $minifier, $css ); return $this->_reservePlace( $this->_needsCdata( $css ) ? "{$openStyle}/**/" : "{$openStyle}{$css}" ); } protected function _removeScriptCB( $m ) { $openScript = "{$ws2}" : "{$ws1}{$openScript}{$js}{$ws2}" ); } protected function _removeCdata( $str ) { return ( false !== strpos( $str, '' ), '', $str ) : $str; } protected function _needsCdata( $str ) { return ( $this->_isXhtml && preg_match( '/(?:[<&]|\\-\\-|\\]\\]>)/', $str ) ); } } Brown Archives - Tripzguide Skip to content Home Flights Hotels Car Rentals Taxi Tours Visa Applications Trips Shop Blog MoreExpand Airfare Refunds Bike/Motorcycle Events & Tickets Travel Insurance Yachts SIM Trip.com QEEQ WayAway Facebook Twitter Instagram Toggle Menu Default sorting Sort by popularity Sort by average rating Sort by latest Sort by price: low to high Sort by price: high to low Grid List Sale! BOSTANTEN Duffle Bags for Men Genuine Leather Trav $299.98 Original price was: $299.98.$199.99Current price is: $199.99. From the brand BOSTANTEN Leather Travel Bag <<< Swipe to View More <<< Men&Women Leather Duffel Bag Men Laptop Briefcase Men Belt with Sliding Buckle Men Leather Laptop Backpack Women Laptop Briefcase Women Leather Wallet Backpack Purse&Laptop Backpack Vintage color — classic brown with natural scars. The heavy-duty duffel bag features by its stout break-resistant fittings like brass zippers, grommets and feet as well as thick, premium stitching liningRoom for your gears — interior: 1 big compartment including 1 zipper pocket + 3 slip pockets. Exterior: 1 adjustable shoulder strap with padding + 1 ID card sleeve + 1 front zipper pocket + 1 rear zipper pocket + 1 luggage strap + 1 shoe zipper compartment. Spacious for daily clothing/travel necessities/sports gears etc.Quick access zip pockets — while you travel between cities on weekend or holiday, you will have to carry some accessories like cash/coins/tickets/cards/cables, and the pockets are suitable for you to access quickly without the need to fumble around it. All things and shoes keep organized!Warranty — BOSTANTEN provides outstanding products and a wonderful buying experience. If you are not satisfied with our product or service for any reason, please reach out and we will attempt to resolve any issues and ensure your contentment. Buy NowLoading Done CLUCI Weekender Bags for Women Canvas Duffle Bag T $49.99 Buy NowLoading Done Home Flights Hotels Car Rentals Taxi Tours Visa Applications Trips Shop Blog MoreToggle child menuExpand Airfare Refunds Bike/Motorcycle Events & Tickets Travel Insurance Yachts SIM Trip.com QEEQ WayAway
_reservePlace( "\\s*$)/', '', $css ); // remove CDATA section markers $css = $this->_removeCdata( $css ); // minify $minifier = $this->_cssMinifier ? $this->_cssMinifier : 'trim'; $css = call_user_func( $minifier, $css ); return $this->_reservePlace( $this->_needsCdata( $css ) ? "{$openStyle}/**/" : "{$openStyle}{$css}" ); } protected function _removeScriptCB( $m ) { $openScript = "{$ws2}" : "{$ws1}{$openScript}{$js}{$ws2}" ); } protected function _removeCdata( $str ) { return ( false !== strpos( $str, '' ), '', $str ) : $str; } protected function _needsCdata( $str ) { return ( $this->_isXhtml && preg_match( '/(?:[<&]|\\-\\-|\\]\\]>)/', $str ) ); } } Brown Archives - Tripzguide Skip to content Home Flights Hotels Car Rentals Taxi Tours Visa Applications Trips Shop Blog MoreExpand Airfare Refunds Bike/Motorcycle Events & Tickets Travel Insurance Yachts SIM Trip.com QEEQ WayAway Facebook Twitter Instagram Toggle Menu Default sorting Sort by popularity Sort by average rating Sort by latest Sort by price: low to high Sort by price: high to low Grid List Sale! BOSTANTEN Duffle Bags for Men Genuine Leather Trav $299.98 Original price was: $299.98.$199.99Current price is: $199.99. From the brand BOSTANTEN Leather Travel Bag <<< Swipe to View More <<< Men&Women Leather Duffel Bag Men Laptop Briefcase Men Belt with Sliding Buckle Men Leather Laptop Backpack Women Laptop Briefcase Women Leather Wallet Backpack Purse&Laptop Backpack Vintage color — classic brown with natural scars. The heavy-duty duffel bag features by its stout break-resistant fittings like brass zippers, grommets and feet as well as thick, premium stitching liningRoom for your gears — interior: 1 big compartment including 1 zipper pocket + 3 slip pockets. Exterior: 1 adjustable shoulder strap with padding + 1 ID card sleeve + 1 front zipper pocket + 1 rear zipper pocket + 1 luggage strap + 1 shoe zipper compartment. Spacious for daily clothing/travel necessities/sports gears etc.Quick access zip pockets — while you travel between cities on weekend or holiday, you will have to carry some accessories like cash/coins/tickets/cards/cables, and the pockets are suitable for you to access quickly without the need to fumble around it. All things and shoes keep organized!Warranty — BOSTANTEN provides outstanding products and a wonderful buying experience. If you are not satisfied with our product or service for any reason, please reach out and we will attempt to resolve any issues and ensure your contentment. Buy NowLoading Done CLUCI Weekender Bags for Women Canvas Duffle Bag T $49.99 Buy NowLoading Done Home Flights Hotels Car Rentals Taxi Tours Visa Applications Trips Shop Blog MoreToggle child menuExpand Airfare Refunds Bike/Motorcycle Events & Tickets Travel Insurance Yachts SIM Trip.com QEEQ WayAway
From the brand
<<< Swipe to View More <<<
Vintage color — classic brown with natural scars. The heavy-duty duffel bag features by its stout break-resistant fittings like brass zippers, grommets and feet as well as thick, premium stitching liningRoom for your gears — interior: 1 big compartment including 1 zipper pocket + 3 slip pockets. Exterior: 1 adjustable shoulder strap with padding + 1 ID card sleeve + 1 front zipper pocket + 1 rear zipper pocket + 1 luggage strap + 1 shoe zipper compartment. Spacious for daily clothing/travel necessities/sports gears etc.Quick access zip pockets — while you travel between cities on weekend or holiday, you will have to carry some accessories like cash/coins/tickets/cards/cables, and the pockets are suitable for you to access quickly without the need to fumble around it. All things and shoes keep organized!Warranty — BOSTANTEN provides outstanding products and a wonderful buying experience. If you are not satisfied with our product or service for any reason, please reach out and we will attempt to resolve any issues and ensure your contentment.