日期:2014-05-17  浏览次数:20544 次

从phpcms v9里提取的常用函数

/**
* 返回经addslashes处理过的字符串或数组
* @param $string 需要处理的字符串或数组
* @return mixed
*/
function new_addslashes($string){
? ? if(!is_array($string)) return addslashes($string);
? ? foreach($string as $key => $val) $string[$key] = new_addslashes($val);
? ? return $string;
}

/**
* 返回经stripslashes处理过的字符串或数组
* @param $string 需要处理的字符串或数组
* @return mixed
*/
function new_stripslashes($string) {
? ? if(!is_array($string)) return stripslashes($string);
? ? foreach($string as $key => $val) $string[$key] = new_stripslashes($val);
? ? return $string;
}

/**
* 返回经addslashe处理过的字符串或数组
* @param $obj 需要处理的字符串或数组
* @return mixed
*/
function new_html_special_chars($string) {
? ? if(!is_array($string)) return htmlspecialchars($string);
? ? foreach($string as $key => $val) $string[$key] = new_html_special_chars($val);
? ? return $string;
}
/**
* 安全过滤函数
*
* @param $string
* @return string
*/
function safe_replace($string) {
? ? $string = str_replace('%20','',$string);
? ? $string = str_replace('%27','',$string);
? ? $string = str_replace('%2527','',$string);
? ? $string = str_replace('*','',$string);
? ? $string = str_replace('"','"',$string);
? ? $string = str_replace("'",'',$string);
? ? $string = str_replace('"','',$string);
? ? $string = str_replace(';','',$string);
? ? $string = str_replace('<','&lt;',$string);
? ? $string = str_replace('>','&gt;',$string);
? ? $string = str_replace("{",'',$string);
? ? $string = str_replace('}','',$string);
? ? return $string;
}



/**
* 过滤ASCII码从0-28的控制字符
* @return String
*/
function trim_unsafe_control_chars($str) {
? ? $rule = '/[' . chr ( 1 ) . '-' . chr ( 8 ) . chr ( 11 ) . '-' . chr ( 12 ) . chr ( 14 ) . '-' . chr ( 31 ) . ']*/';
? ? return str_replace ( chr ( 0 ), '', preg_replace ( $rule, '', $str ) );
}

/**
* 格式化文本域内容
*
* @param $string 文本域内容
* @return string
*/
function trim_textarea($string) {
? ? $string = nl2br ( str_replace ( ' ', '&nbsp;', $string ) );
? ? return $string;
}

/**
* 将文本格式成适合js输出的字符串
* @param string $string 需要处理的字符串
* @param intval $isjs 是否执行字符串格式化,默认为执行
* @return string 处理后的字符串
*/
function format_js($string, $isjs = 1)
{
? ? $string = addslashes(str_replace(array("\r", "\n"), array('', ''), $string));
? ? return $isjs ? 'document.write("'.$string.'");' : $string;
}

/**
* 转义 javascript 代码标记
*
* @param $str
* @return mixed
*/
function trim_script($str) {
? ? $str = preg_replace ( '/\<([\/]?)script([^\>]*?)\>/si', '&lt;\\1script\\2&gt;', $str );
? ? $str = preg_replace ( '/\<([\/]?)iframe([^\>]*?)\>/si', '&lt;\\1iframe\\2&gt;', $str );
? ? $str = preg_replace ( '/\<([\/]?)frame([^\>]*?)\>/si', '&lt;\\1frame\\2&gt;', $str );
? ? $str = preg_replace ( '/]]\>/si', ']] >', $str );
? ? return $str;
}
/**
* 获取当前页面完整URL地址
*/
function get_url() {
? ? $sys_protocal = isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443' ? 'https://' : 'http://';
? ? $php_self = $_SERVER['PHP_SELF'] ? safe_replace($_SERVER['PHP_SELF']) : safe_replace($_SERVER['SCRIPT_NAME']);
? ? $path_info = isset($_SERVER['PATH_INFO']) ? safe_replace($_SERVER['PATH_INFO']) : '';
? ? $relate_url = isset($_SERVER['REQUEST_URI']) ? safe_replace($_SERVER['REQUEST_URI']) : $php_self.(isset($_SERVER['QUERY_STRING']) ? '?'.safe_replace($_SERVER['QUERY_STRING']) : $path_info);
? ? return $sys_protocal.(isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '').$relate_url;
}
/**
* 字符截取 支持UTF8/GBK
* @param $string
* @param $length
* @param $dot
*/
function str_cut($string, $length, $dot = '...') {
? ? $strlen = strlen($string);
? ? if($strlen <