]> git.immae.eu Git - github/shaarli/Shaarli.git/blobdiff - application/Utils.php
LinkDB::filterDay(): check input date format
[github/shaarli/Shaarli.git] / application / Utils.php
index 737f150253d407f07d55d2411a6f4fad4558ed41..a1e97b356c6ed85e418f7515d0697bd3b949c729 100644 (file)
@@ -42,4 +42,46 @@ function endsWith($haystack, $needle, $case=true)
     }
     return (strcasecmp(substr($haystack, strlen($haystack) - strlen($needle)), $needle) === 0);
 }
+
+/**
+ * Same as nl2br(), but escapes < and >
+ */
+function nl2br_escaped($html)
+{
+    return str_replace('>','&gt;',str_replace('<','&lt;',nl2br($html)));
+}
+
+/**
+ * htmlspecialchars wrapper
+ */
+function escape($str)
+{
+    return htmlspecialchars($str, ENT_COMPAT, 'UTF-8', false);
+}
+
+/**
+ * Link sanitization before templating
+ */
+function sanitizeLink(&$link)
+{
+    $link['url'] = escape($link['url']); // useful?
+    $link['title'] = escape($link['title']);
+    $link['description'] = escape($link['description']);
+    $link['tags'] = escape($link['tags']);
+}
+
+/**
+ * Checks if a string represents a valid date
+ *
+ * @param string        a string-formatted date
+ * @param format        the expected DateTime format of the string
+ * @return              whether the string is a valid date
+ * @see                 http://php.net/manual/en/class.datetime.php
+ * @see                 http://php.net/manual/en/datetime.createfromformat.php
+ */
+function checkDateFormat($format, $string)
+{
+    $date = DateTime::createFromFormat($format, $string);
+    return $date && $date->format($string) == $string;
+}
 ?>