summaryrefslogtreecommitdiff
path: root/includes
diff options
context:
space:
mode:
Diffstat (limited to 'includes')
-rw-r--r--includes/path.inc20
1 files changed, 20 insertions, 0 deletions
diff --git a/includes/path.inc b/includes/path.inc
index 898b39048..d9774f93e 100644
--- a/includes/path.inc
+++ b/includes/path.inc
@@ -220,3 +220,23 @@ function drupal_is_front_page() {
// we can check it against the 'site_frontpage' variable.
return $_GET['q'] == drupal_get_normal_path(variable_get('site_frontpage', 'node'));
}
+
+/**
+ * Check if a path matches any pattern in a set of patterns.
+ *
+ * @param $path
+ * The path to match.
+ * @param $patterns
+ * String containing a set of patterns separated by \n, \r or \r\n.
+ *
+ * @return
+ * Boolean value: TRUE if the path matches a pattern, FALSE otherwise.
+ */
+function drupal_match_path($path, $patterns) {
+ static $regexps;
+
+ if (!isset($regexps[$patterns])) {
+ $regexps[$patterns] = '/^('. preg_replace(array('/(\r\n?|\n)/', '/\\\\\*/', '/(^|\|)\\\\<front\\\\>($|\|)/'), array('|', '.*', '\1'. preg_quote(variable_get('site_frontpage', 'node'), '/') .'\2'), preg_quote($patterns, '/')) .')$/';
+ }
+ return preg_match($regexps[$patterns], $path);
+}