diff options
Diffstat (limited to 'vendor/fguillot/picofeed/lib/PicoFeed/Filter/Filter.php')
m--------- | vendor/fguillot/picofeed | 0 | ||||
-rw-r--r-- | vendor/fguillot/picofeed/lib/PicoFeed/Filter/Filter.php | 131 |
2 files changed, 131 insertions, 0 deletions
diff --git a/vendor/fguillot/picofeed b/vendor/fguillot/picofeed deleted file mode 160000 -Subproject 0a1d0d3950f7f047dc8fb1d80aa6296e15f306d diff --git a/vendor/fguillot/picofeed/lib/PicoFeed/Filter/Filter.php b/vendor/fguillot/picofeed/lib/PicoFeed/Filter/Filter.php new file mode 100644 index 000000000..0eb3f88ea --- /dev/null +++ b/vendor/fguillot/picofeed/lib/PicoFeed/Filter/Filter.php @@ -0,0 +1,131 @@ +<?php + +namespace PicoFeed\Filter; + +/** + * Filter class + * + * @author Frederic Guillot + * @package Filter + */ +class Filter +{ + /** + * Get the Html filter instance + * + * @static + * @access public + * @param string $html HTML content + * @param string $website Site URL (used to build absolute URL) + * @return Html + */ + public static function html($html, $website) + { + $filter = new Html($html, $website); + return $filter; + } + + /** + * Escape HTML content + * + * @static + * @access public + * @return string + */ + public static function escape($content) + { + return @htmlspecialchars($content, ENT_QUOTES, 'UTF-8', false); + } + + /** + * Remove HTML tags + * + * @access public + * @param string $data Input data + * @return string + */ + public function removeHTMLTags($data) + { + return preg_replace('~<(?:!DOCTYPE|/?(?:html|head|body))[^>]*>\s*~i', '', $data); + } + + /** + * Remove the XML tag from a document + * + * @static + * @access public + * @param string $data Input data + * @return string + */ + public static function stripXmlTag($data) + { + if (strpos($data, '<?xml') !== false) { + $data = ltrim(substr($data, strpos($data, '?>') + 2)); + } + + do { + + $pos = strpos($data, '<?xml-stylesheet '); + + if ($pos !== false) { + $data = ltrim(substr($data, strpos($data, '?>') + 2)); + } + + } while ($pos !== false && $pos < 200); + + return $data; + } + + /** + * Strip head tag from the HTML content + * + * @static + * @access public + * @param string $data Input data + * @return string + */ + public static function stripHeadTags($data) + { + return preg_replace('@<head[^>]*?>.*?</head>@siu','', $data ); + } + + /** + * Trim whitespace from the begining, the end and inside a string and don't break utf-8 string + * + * @static + * @access public + * @param string $value Raw data + * @return string Normalized data + */ + public static function stripWhiteSpace($value) + { + $value = str_replace("\r", ' ', $value); + $value = str_replace("\t", ' ', $value); + $value = str_replace("\n", ' ', $value); + // $value = preg_replace('/\s+/', ' ', $value); <= break utf-8 + return trim($value); + } + + /** + * Dirty quickfixes before XML parsing + * + * @static + * @access public + * @param string $data Raw data + * @return string Normalized data + */ + public static function normalizeData($data) + { + $invalid_chars = array( + "\x10", + "\xc3\x20", + "", + ); + + foreach ($invalid_chars as $needle) { + $data = str_replace($needle, '', $data); + } + + return $data; + } +} |