(2003-2009) * @author Froxlor team (2010-) * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @package Functions * */ /** * Function which returns a secure path, means to remove all multiple dots and slashes * * @param string The path * @return string The corrected path * @author Florian Lippert */ function makeSecurePath($path) { $search = array( '#/+#', '#\.+#', '#\0+#' ); $replace = array( '/', '.', '' ); $path = preg_replace($search, $replace, $path); // don't just replace a space with an escaped space // it might be escaped already $path = str_replace("\ ", " ", $path); $path = str_replace(" ", "\ ", $path); // check for bad characters, some are allowed with escaping // but we generally don't want them in our directory-names, // thx to aaronmueller for this snipped $badchars = array(':', ';', '|', '&', '>', '<', '`', '$', '~', '?'); foreach ($badchars as $bc) { str_replace($bc, "", $path); } return $path; }