<?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; | |
} | |
} | |