summaryrefslogtreecommitdiffstats
path: root/vendor/fguillot/picofeed/lib/PicoFeed/Filter/Filter.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/fguillot/picofeed/lib/PicoFeed/Filter/Filter.php')
m---------vendor/fguillot/picofeed0
-rw-r--r--vendor/fguillot/picofeed/lib/PicoFeed/Filter/Filter.php131
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",
+ "&#x1F;",
+ );
+
+ foreach ($invalid_chars as $needle) {
+ $data = str_replace($needle, '', $data);
+ }
+
+ return $data;
+ }
+}