protected static function load_svg($svg = '') {
		// Early bail.
		if (!is_string($svg) || !strlen($svg)) {
			return false;
		}

		// Maybe a path?
		if (
			false === mb::strpos(mb::strtolower($svg), '<svg') ||
			false === mb::strrpos(mb::strtolower($svg), '</svg>')
		) {
			try {
				// @codingStandardsIgnoreStart
				$svg = @file_get_contents($svg);
				// @codingStandardsIgnoreEnd
				if (!is_string($svg) || !strlen($svg)) {
					return false;
				}
			} catch (\Throwable $e) {
				return false;
			} catch (\Exception $e) {
				return false;
			}
		}

		// Lowercase the tags.
		$svg = preg_replace('/<svg/ui', '<svg', $svg);
		$svg = preg_replace('/<\/svg>/ui', '</svg>', $svg);

		if (
			false === ($start = mb::strpos($svg, '<svg')) ||
			false === ($end = mb::strrpos($svg, '</svg>'))
		) {
			return false;
		}
		$svg = mb::substr($svg, $start, ($end - $start + 6));

		// Remove comments.
		$svg = static::strip_comments($svg);

		return $svg;
	}
protected static function load_svg($svg = '') {
		// Early bail.
		if (!is_string($svg) || !strlen($svg)) {
			return false;
		}

		// Maybe a path?
		if (
			false === mb::strpos(mb::strtolower($svg), '<svg') ||
			false === mb::strrpos(mb::strtolower($svg), '</svg>')
		) {
			try {
				// @codingStandardsIgnoreStart
				$svg = @file_get_contents($svg);
				// @codingStandardsIgnoreEnd
				if (!is_string($svg) || !strlen($svg)) {
					return false;
				}
			} catch (\Throwable $e) {
				return false;
			} catch (\Exception $e) {
				return false;
			}
		}

		// Lowercase the tags.
		$svg = preg_replace('/<svg/ui', '<svg', $svg);
		$svg = preg_replace('/<\/svg>/ui', '</svg>', $svg);

		if (
			false === ($start = mb::strpos($svg, '<svg')) ||
			false === ($end = mb::strrpos($svg, '</svg>'))
		) {
			return false;
		}
		$svg = mb::substr($svg, $start, ($end - $start + 6));

		// Remove comments.
		$svg = static::strip_comments($svg);

		return $svg;
	}
protected static function load_svg ( $ svg = '' ) { // Early bail. if ( ! is_string ( $ svg ) || ! strlen ( $ svg ) ) { return false ; } // Maybe a path? if ( false === mb :: strpos ( mb :: strtolower ( $ svg ) , '<svg' ) || false === mb :: strrpos ( mb :: strtolower ( $ svg ) , '</svg>' ) ) { try { // @codingStandardsIgnoreStart $ svg = @ file_get_contents ( $ svg ) ; // @codingStandardsIgnoreEnd if ( ! is_string ( $ svg ) || ! strlen ( $ svg ) ) { return false ; } } catch ( \ Throwable $ e ) { return false ; } catch ( \ Exception $ e ) { return false ; } } // Lowercase the tags. $ svg = preg_replace ( '/<svg/ui' , '<svg' , $ svg ) ; $ svg = preg_replace ( '/<\/svg>/ui' , '</svg>' , $ svg ) ; if ( false === ( $ start = mb :: strpos ( $ svg , '<svg' ) ) || false === ( $ end = mb :: strrpos ( $ svg , '</svg>' ) ) ) { return false ; } $ svg = mb :: substr ( $ svg , $ start , ( $ end - $ start + 6 ) ) ; // Remove comments. $ svg = static :: strip_comments ( $ svg ) ; return $ svg ; }
Read an SVG file as contents or path.

@param string $svg SVG code or path.
@return string|bool SVG code. False on failure.
Read an SVG file as contents or path .