safe mode for utf8_encodeFN

darcs-hash:20050123182753-9977f-9226687e01f083dbeea7a205db30a6d74ed2eb5f.gz
This commit is contained in:
andi 2005-01-23 19:27:53 +01:00
parent d5a2a500a5
commit f59b22f06f
1 changed files with 15 additions and 4 deletions

View File

@ -11,10 +11,19 @@
*
* Slashes are not encoded
*
* When the second parameter is true the string will
* be encoded only if non ASCII characters are detected -
* This makes it safe to run it multiple times on the
* same string (default is true)
*
* @author Andreas Gohr <andi@splitbrain.org>
* @see urlencode
*/
function utf8_encodeFN($file){
$file = rawurlencode($file);
function utf8_encodeFN($file,$safe=true){
if($safe && preg_match('#^[a-zA-Z0-9/_\-.%]+$#',$file)){
return $file;
}
$file = urlencode($file);
$file = str_replace('%2F','/',$file);
return $file;
}
@ -22,10 +31,13 @@ function utf8_encodeFN($file){
/**
* URL-Decode a filename
*
* This is just a wrapper around urldecode
*
* @author Andreas Gohr <andi@splitbrain.org>
* @see urldecode
*/
function utf8_decodeFN($file){
$file = rawurldecode($file);
$file = urldecode($file);
return $file;
}
@ -52,7 +64,6 @@ function utf8_check($Str) {
return true;
}
/**
* This is a unicode aware replacement for strlen()
*