diff options
author | Derek Allard <derek.allard@ellislab.com> | 2008-02-11 13:46:24 +0100 |
---|---|---|
committer | Derek Allard <derek.allard@ellislab.com> | 2008-02-11 13:46:24 +0100 |
commit | 466039ab97e67a23168798731084d4127c7f30a1 (patch) | |
tree | 857949183eb5b8857ef46941e1ea398cd2041187 /system/helpers/path_helper.php | |
parent | 903cc985da13463369a4cb1831ccbe5449316ee7 (diff) |
added Path Helper
Diffstat (limited to 'system/helpers/path_helper.php')
-rw-r--r-- | system/helpers/path_helper.php | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/system/helpers/path_helper.php b/system/helpers/path_helper.php new file mode 100644 index 000000000..30d26d6ee --- /dev/null +++ b/system/helpers/path_helper.php @@ -0,0 +1,70 @@ +<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
+/**
+ * CodeIgniter
+ *
+ * An open source application development framework for PHP 4.3.2 or newer
+ *
+ * @package CodeIgniter
+ * @author ExpressionEngine Dev Team
+ * @copyright Copyright (c) 2006, EllisLab, Inc.
+ * @license http://codeigniter.com/user_guide/license.html
+ * @link http://codeigniter.com
+ * @since Version 1.0
+ * @filesource
+ */
+
+// ------------------------------------------------------------------------
+
+/**
+ * CodeIgniter Path Helpers
+ *
+ * @package CodeIgniter
+ * @subpackage Helpers
+ * @category Helpers
+ * @author ExpressionEngine Dev Team
+ * @link http://codeigniter.com/user_guide/helpers/xml_helper.html
+ */
+
+// ------------------------------------------------------------------------
+
+/**
+ * Set Realpath
+ *
+ * @access public
+ * @param string
+ * @param bool checks to see if the path exists
+ * @return string
+ */
+if (! function_exists('set_realpath'))
+{
+ function set_realpath($path, $check_existance = TRUE)
+ {
+ // Security check to make sure the path is NOT a URL. No remote file inclusion!
+ if (preg_match("#^(http:\/\/|https:\/\/|www\.|ftp|[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})#i", $path))
+ {
+ show_error('The path you submitted must be a local server path, not a URL');
+ }
+
+ // Resolve the path
+ if (function_exists('realpath') AND @realpath($path) !== FALSE)
+ {
+ $path = realpath($path).'/';
+ }
+
+ // Add a trailing slash
+ $path = preg_replace("#([^/])/*$#", "\\1/", $path);
+
+ // Make sure the path exists
+ if ($check_existance == TRUE)
+ {
+ if ( ! is_dir($path))
+ {
+ show_error('Not a valid path: '.$path);
+ }
+ }
+
+ return $path;
+ }
+}
+
+?>
\ No newline at end of file |