PHP:将图片编码成base64

分类:技术 | 5月 9th, 2012 | 4,956 views | 1条评论

Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,事实上,可以base64编码的文件不仅仅是图片,其他可以通过Http传输的数据文件也可以base64编码,恩,差不多,就这样.

想了解更多情况的童鞋可以看看这篇文章《小tip: base64:URL背景图片与web页面性能优化》。

今天主要分享一段用PHP实现 将本地图片编码成base64 的代码:
继续阅读…

Javascript:使用Web代理实现XMLHttpRequest跨域访问

分类:Web前端 | 4月 22nd, 2012 | 13,223 views | 暂无评论

XMLHttpRequest对象(在IE中也称作XMLHTTP对象)是当今最令人兴奋的AJAX Web应用程序的核心。但实际上使用这个对象书写的客户端web应用程序在通过web浏览器进行跨域访问时面临的安全限制性因素而变的非常棘手。这篇文章以简单易于理解的语言描述了这个问题,并提供了一个可行的解决方案:来自你的web服务器请求像雅虎的web服务API网络请求的web代理。

继续阅读…

PHP中功能强大却少使用的函数

分类:Web前端 | 10月 20th, 2011 | 3,393 views | 1条评论

call_user_func_array — 让参数以数组的形式调用一个函数
call_user_func — 调用一个存在的函数
create_function — 建立一个函数
func_get_arg — 获取函数中某个参数的值
func_get_args — 获取函数的所有参数并组成数组
func_num_args — 获取一个函数的参数个数
function_exists — 判定一个函数是否存在
get_defined_functions — 获取已有的函数信息
register_shutdown_function — 注册一个页面载入完成后运行的函数
register_tick_function — 注册一个按要求调用的函数
unregister_tick_function — 取消一个按要求调用的函数
继续阅读…

收藏几个PHP助手函数

分类:Web前端 | 10月 19th, 2011 | 5,424 views | 1条评论

1, 获取客户端IP地址:

/**
 * 获取客户端的IP地址
 * 
 * @since 1.0.0
 * @return string $ip
 */
function getClientIP() {
	if(getenv('HTTP_CLIENT_IP') && strcasecmp( getenv('HTTP_CLIENT_IP'),'unknown')){
		$ip = getenv('HTTP_CLIENT_IP');
	}else if(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp( getenv('HTTP_X_FORWARDED_FOR'),'unknown')){
		$ip = getenv('HTTP_X_FORWARDED_FOR');
	}else if(getenv('REMOTE_ADDR') && strcasecmp( getenv('REMOTE_ADDR'),'unknown')){
		$ip = getenv('REMOTE_ADDR');
	}else if(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'],'unknown')){
		$ip = $_SERVER['REMOTE_ADDR'];
	}else{
		$ip = 'unknown';
	}
	return($ip);
}

2,判断传入字符串是否为邮箱

/**
 * 判断传入字符串是否为邮箱
 * 
 * @since 1.0.0
 * @param String $email
 * @return boolean
 */
function isEmail($email){
	return (ereg("^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+",$email));
}

3,产生给定长度的随机字符串

/**
 * 产生给定长度的随机字符串
 * 
 * @since 1.0.0
 * @param Number $length
 * @return String $hash
 */
function randomStr($length = 32) {
	$hash = '';
	$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';
	$max = strlen ( $chars ) - 1;
	mt_srand ( ( double ) microtime () * 1000000 );
	for($i = 0; $i < $length; $i ++) {
		$hash .= $chars [mt_rand ( 0, $max )];
	}
	return $hash;
}

4,截取字符串函数,支持截取指定长度的汉字字符

/**
 * 截取字符串函数,支持截取指定长度的汉字字符
 * 
 * @since 1.0.0
 * @param $str
 * @param $from
 * @param $len
 * @return string $str
 */
function utf8CutStr($str, $from, $len) {
	$curlen = strlen($str);
	if($curlen>$len){
		return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s','$1',$str).'...'; 
	}else{
		return $str;
	}
}

后续整理,持续增加...