protected static function strip_comments($svg = '') {
		if (!is_string($svg)) {
			return false;
		}

		// Remove XML, PHP, ASP, etc.
		$svg = preg_replace('/<\?(.*)\?>/Us', '', $svg);
		$svg = preg_replace('/<\%(.*)\%>/Us', '', $svg);

		if (
			false !== mb::strpos($svg, '<?') ||
			false !== mb::strpos($svg, '<%')
		) {
			return false;
		}

		// Remove comments.
		$svg = preg_replace('/<!--(.*)-->/Us', '', $svg);
		$svg = preg_replace('/\/\*(.*)\*\//Us', '', $svg);

		if (
			false !== mb::strpos($svg, '<!--') ||
			false !== mb::strpos($svg, '/*')
		) {
			return false;
		}

		return $svg;
	}
protected static function strip_comments($svg = '') {
		if (!is_string($svg)) {
			return false;
		}

		// Remove XML, PHP, ASP, etc.
		$svg = preg_replace('/<\?(.*)\?>/Us', '', $svg);
		$svg = preg_replace('/<\%(.*)\%>/Us', '', $svg);

		if (
			false !== mb::strpos($svg, '<?') ||
			false !== mb::strpos($svg, '<%')
		) {
			return false;
		}

		// Remove comments.
		$svg = preg_replace('/<!--(.*)-->/Us', '', $svg);
		$svg = preg_replace('/\/\*(.*)\*\//Us', '', $svg);

		if (
			false !== mb::strpos($svg, '<!--') ||
			false !== mb::strpos($svg, '/*')
		) {
			return false;
		}

		return $svg;
	}
protected static function strip_comments ( $ svg = '' ) { if ( ! is_string ( $ svg ) ) { return false ; } // Remove XML, PHP, ASP, etc. $ svg = preg_replace ( '/<\?(.*)\?>/Us' , '' , $ svg ) ; $ svg = preg_replace ( '/<\%(.*)\%>/Us' , '' , $ svg ) ; if ( false !== mb :: strpos ( $ svg , '<?' ) || false !== mb :: strpos ( $ svg , '<%' ) ) { return false ; } // Remove comments. $ svg = preg_replace ( '/<!--(.*)-->/Us' , '' , $ svg ) ; $ svg = preg_replace ( '/\/\*(.*)\*\//Us' , '' , $ svg ) ; if ( false !== mb :: strpos ( $ svg , '<!--' ) || false !== mb :: strpos ( $ svg , '/*' ) ) { return false ; } return $ svg ; }
Remove comments and interpreter tags from an SVG file

@param string $svg SVG code or path.
@return string|bool SVG code. False on failure.
Remove comments and interpreter tags from an SVG file