登录 |  注册 |  繁體中文


base64生成url

分类: php 颜色:橙色 默认  字号: 阅读(1926) | 评论(0)

Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,可用于在HTTP环境下传递较长的标识信息。

base64编码就是长得像下面这样子的代码:
thunder://QUFodHRwOi8vd3d3LmJhaWR1LmNvbS9pbWcvc3NsbTFfbG9nby5naWZaWg==

上面代码是一个迅雷下载链接,就是base64编码后的地址

base64:URL就是URL地址是base64编码的。

例如下面这个:


		

二、base64与文件数据编码

在网络中,通过HTTP传输的文件还可以通过base64对数据进行编码进行传输。就如上面的这个base64的gif格式图片。当然,可以base64编码的文件不仅仅是图片,也可以是字体文件,例如(中间有缺省):

@font-face{      font-family: forTest;     
 src: url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAh4 ... RFERuENEGADl7JlY=) format('woff');  }

自然,对于background-image图片,我们也可以使用base64编码进行传输,例如:

background-image:url(data:image/gif;base64,R0lGODlhBAABAIABAMLBwfLx8SH5BAEAAAEALAAAAAAEAAEAAAICRF4AOw==);

而使用base64编码作为background-image图片就是本文要着重阐述的。

三、如何获得图片的base64编码

		< ?php
	
		$img_file = file_get_contents("http://www.baidu.com/img/bdlogo.gif");
	
		echo base64_encode($img_file);
	
		?>
            

 

四、使用base64:URL的优缺点

个人觉得base64:URL传输图片文件的好处在于:

  1. 减少了HTTP请求
  2. 某些文件可以避免跨域的问题
  3. 没有图片更新要重新上传,还要清理缓存的问题

不足在于:

  1. 浏览器支持
    使用base64编码图片作为背景图片的这种技术IE6/IE7浏览器是不支持的(
  2. 增加了CSS文件的尺寸
    base64编码图片本质上是将图片的二进制大小以一些字母的形式展示,例如一个1024字节的图片,base64编码后至少1024个字符,这个大小会被完全嵌入到CSS文件中(不过幸运的是也可以被gzip了,而图片文件被gzip效果不明显)。
  3. 编码成本
    图片完成后还需要base64编码,目前估计手工完成的多,因此,增加了一定的工作量,虽然不多。

五、实际应用价值

在web页面制作的时候,由于某些现实原因,我们可以会用到下面这一类图片:

  • 这类图片不能与其他图片以CSS Sprite的形式存在,只能独行
  • 这类图片从诞生之日起,基本上很少被更新
  • 这类图片的实际尺寸很小
  • 这类图片在网站中大规模使用

以上几点,可能会让你使用base64编码的图片。

 

六、下载地址编码原因

 一般都是编码问题,用base64这样就免去了在URL编解码和数据库存储时所要作的转换,避免了编码信息长度在此过程中的增加,并统一了数据库、表单等处对象识符的格式。


上一篇:Nginx工作原理及优化   下一篇:MySQL主从详解

姓 名: *
邮 箱:
内 容: *
验证码: 点击刷新 *   

回到顶部