Web字体格式介绍

  TrueType (.ttf) Windows和Mac系统最常用的字体格式,其最大的特点就是它是由一种数学模式来进行定义的基于轮廓技术的字体,这使得它们比基于矢量的字体更容易处理,保证了屏幕与打印输出的一致性。同时,这类字体和矢量字体一样可以随意缩放、旋转而不必担心会出现锯齿。EOT – Embedded Open Type (.eot) 嵌入字体格式(EOT)是微软开发的一种技术,允许 OpenType 字体嵌入到网页并可以下载至浏览器渲染,浏览器根据 CSS 中 @font-face 的定义,下载,渲染这种 .EOT 后缀的字体文件。这些文件只在当前页活动的状态下,临时安装在用户的系统中。OpenType (.otf) OpenType是一种可缩放字型(scalable font)电脑字体类型,采用PostScript格式,是美国微软公司与Adobe公司联合开发,用来替代TrueType字型的新字型。这类字体的文件扩展名为.otf,类型代码是OTTO,现行标准为OpenType 1.4。OpenType最初发表于1996年,并在2000年之后出现大量字体。它源于微软公司的TrueType Open字型,TrueType Open字型又源于TrueType字型。OpenType font包括了Adobe CID-Keyed font技术。Adobe公司已经在2002年末将其字体库全部改用OpenType格式。WOFF – Web Open Font Format (.woff) 相对于 TrueType 和 OpenType ,WOFF(Web开发字体格式)是一种专门为了 Web 而设计的字体格式标准,它并不复杂,实际上只是对于 TrueType / OpenType 等字体格式的封装,并针对网络使用加以优化:每个字体文件中含有字体以及针对字体的元数据(Metadata),字体文件被压缩,以便于网络传输,并且不包含任何加密或者 DRM 措施。包括 Adobe、 Lino Type、Monotype 在内的几乎所有主要的字体供应商都加入到支持 WOFF 的行列中来SVG (Scalable Vector Graphics) Fonts (.svg) 顾名思义,就是使用SVG技术来呈现字体,还有一种gzip压缩格式的SVG字体.svgz。SVG可缩放矢量图形(Scalable Vector Graphics)是基于可扩展标记语言(XML),用于描述二维矢量图形的一种图形格式。SVG由W3C制定,是一个开放标准。SVG严格遵从XML语法,并用文本格式的描述性语言来描述图像内容,因此是一种和图像分辨率无关的矢量图形格式。SVG可以使你设计的网页可以更加精彩细致,使用简单的文本命令,SVG可实现色彩线性变化、路径、自定义字体、透明效果、滤镜效果等各式常见的图形图像效果。 字体格式转换工具 EOTFast 用于把TTF文件转为EOT格式。Microsoft WEFT 微软提供的字体格式转换工具。ttf2eot可以转换TTF文件为EOT格式。FontForge 把OTF文件转为TTF格 在线的转换工具 http://ttf2eot.sebastiankippe.com http://www.cuvou.com/wizards/ttf2eot.cgi http://onlinefontconverter.com/ 浏览器兼容性一览 使用CSS3的@font-face属性可以实现在网页中嵌入任意字体(其实IE4就支持这个属性了,后来这个属性加入到了CSS3中),但是IE只支持微软自有的EOT格式字体,而其他浏览器都不支持这一字体格式,其它浏览器可以设置TTF(TrueType)和OTF(OpenType)两种字体作为自定义字体  

龙生   19 Feb 2013
View Details

css实现不换行/自动换行/强制换行

不换行  white-space:nowrap; 自动换行  word-wrap: break-word; word-break: normal; 强制英文单词断行 word-break:break-all;  

龙生   19 Feb 2013
View Details

简单针对IE6,7,8的CSS hack

  刚好看到有这么一篇文章,翻译过来给需要的人看看,同时也给自己看看。 body{ color:red; //所有浏览器 color:yellow\9; //IE8及以下 *color:blue; //IE7及以下 _color:gray; //IE6 } 值得注意的是\9是针对IE8及以下版本(未测试是否包含IE6以下版本),而如果是color:orange/0;把9换成0就是只针对IE8的hack了。 同时还要注意,条件注释(conditional comments)是一种更好的hack方式。 <!–[if IE 6]> body{ color:green; //IE6 } <![endif]–> 本文翻译自http://net.tutsplus.com/tutorials/html-css-techniques/quick-tip-how-to-target-ie6-ie7-and-ie8-uniquely-with-4-characters/ 并做细微修改。 http://http://www.ediyang.com/how-to-target-ie6-ie7-and-ie8/

龙生   19 Feb 2013
View Details

关于php5.3作废函数的处理方法,如ereg.*

  作废函数如下: call_user_method()(使用 call_user_func() 替代) call_user_method_array() (使用 call_user_func_array() 替代) define_syslog_variables() dl() ereg() (使用 preg_match() 替代) ereg_replace() (使用 preg_replace() 替代) eregi() (使用 preg_match() 配合 ‘i’ 修正符替代) eregi_replace() (使用 preg_replace() 配合 ‘i’ 修正符替代) set_magic_quotes_runtime() 以及它的别名函数  magic_quotes_runtime() [color=olive]session_register() (使用 $_SESSION 超全部变量替代) session_unregister() (使用 $_SESSION 超全部变量替代) session_is_registered() (使用 $_SESSION 超全部变量替代) set_socket_blocking() (使用 stream_set_blocking() 替代) split() (使用 preg_split() 替代) spliti() (使用 preg_split() 配合 ‘i’ 修正符替代) sql_regcase() mysql_db_query() (使用 mysql_select_db() 和  mysql_query() 替代) mysql_escape_string() (使用 mysql_real_escape_string() 替代) 废弃以字符串传递区域设置名称. 使用 LC_* 系列常量替代. mktime() 的 is_dst 参数. 使用新的时区处理函数替代. 处理方法:editplus编辑器中,正则替换 替换ereg(),eregi():用preg_match替换 ereg\(“([^"]+)”替换为:preg_match(“/\1/” ereg\(‘([^"]+)’替换为:preg_match(‘/\1/’ eregi\(“([^"]+)”替换为:preg_match(“/\1/i” eregi\(‘([^"]+)’替换为:preg_match(‘/\1/i’ 替换ereg_replace(),eregi_replace():用preg_replace()替换 ereg_replace\(“([^"]+)”替换为:preg_replace(“/\1/” ereg_replace\(‘([^"]+)’替换为:preg_replace(‘/\1/’ ereg_ireplace\(“([^"]+)”替换为:preg_replace(“/\1/i” ereg_ireplace\(‘([^"]+)’替换为:preg_replace(‘/\1/i’ 如果 ereg_replace 的第一个参数不是正则表达式,可以用 str_replace 直接来替换 split用explode替换或preg_split替换=&使用=替换 出处:http://blog.duteba.com/technology/article/38.htm  

龙生   19 Feb 2013
View Details

Function ereg() is deprecated及解决办法

  因为是在Drupal中遇到的问题,所以就在Drupal中解决。原因很简单,就是Drupal 6.x不支持PHP 5.3,Drupal 7没有这个问题,解决办法也很多。最简单的莫过于降级到PHP 5.2.x,如果由于一些特别的原因必须使用PHP 5.3+的话,可以尝试下列办法。 打开Drupal安装目录下的includes/common.inc文件,找到590行(如果没有修改过的话),显示的应该是  

将这一行替换成

这一句将禁止所有Deprecated错误信息。如果你安装了Developer Tools模块的话,那么还需要修改devel/devel.module的460行,方法相同。   如果这个办法不好用的话,可以尝试修改php.ini。 打开php.ini,找到

改成

道理是一样的。   如果还不行,或者因为各种原因改不了以上两处的话,还有办法。 打开drupal\includes\file.inc文件,找到895行,如下。

注意,如果895行不是这句的话,就在附近找找,或者直接搜索这句,找到以后把这句改为

这样怎么着应该都行了。   养成良好的编程习惯,修改之前务必备份。 from url:http://www.baifeng.me/web/hosting/2010/03/1240/  

龙生   19 Feb 2013
View Details

PHP的静态方法介绍

  静态方法的规则和静态变量是相同的。使用ststic关键字可以将方法标识为静态方法,通过类的名称和作用域限定操作符::可以访问静态方法。 静态方法和非静态方法之间有一个很重要的区别,就是在调用静态方法时,我们不需要创建类的实例。 Program List:用类名作为参数 用类名作为参数可以解决非继承的静态问题。 01 <?php 02 classFruit { 03 publicstatic$category= "I'm fruit"; 04 ​ 05 staticfunctionfind($class) 06 { 07 $vars= get_class_vars($class) ; 08 echo$vars['category'] ; 09 } 10 } 11 ​ 12 classApple extendsFruit { 13 publicstatic$category= "I'm Apple"; 14 } 15 ​ 16 Apple::find("Apple"); 17 ?> 程序运行结果: 1 I'm Apple Program List:重写基类方法 在派生类重写基类的方法。 01 <?php 02 classFruit 03 { 04 staticfunctionFoo ( $class= __CLASS__) 05 { 06 call_user_func(array($class, 'Color')); 07 } 08 } 09 ​ 10 classApple extendsFruit 11 { 12 staticfunctionFoo ( $class= __CLASS__) 13 { 14 parent::Foo($class); 15 } 16 ​ 17 staticfunctionColor() 18 { 19 echo"Apple's color is red"; 20 } 21 } 22 ​ […]

龙生   19 Feb 2013
View Details

php抓取页面的几种方式

一、 PHP抓取页面的主要方法: 1. file()函数 2. file_get_contents()函数 3. fopen()->fread()->fclose()模式 4.curl方式 5. fsockopen()函数 socket模式 6. 使用插件(如:http://sourceforge.net/projects/snoopy/) 二、PHP解析html或xml代码主要方式: 1. file()函数 <?php $url=’http://t.qq.com’; $lines_array=file($url); $lines_string=implode(”,$lines_array); echo htmlspecialchars($lines_string); ?> 2. file_get_contents() 函数 使用file_get_contents和fopen必须空间开启allow_url_fopen。 方法:编辑php.ini,设置 allow_url_fopen = On,allow_url_fopen关闭时fopen和file_get_contents都不能打开远程文件。 <?php $url=’http://t.qq.com’; $lines_string=file_get_contents($url); echo htmlspecialchars($lines_string); ?>3. fopen()->fread()->fclose()模式 <?php $url=’http://t.qq.com’; $handle=fopen($url,”rb”); $lines_string=”"; do{ $data=fread($handle,1024); if(strlen($data)==0){break;} $lines_string.=$data; }while(true); fclose($handle); echo htmlspecialchars($lines_string); ?>4. curl方式 使用curl必须空间开启curl。方法:windows下修改php.ini,将extension=php_curl.dll前面的分号去掉,而且需 要拷贝ssleay32.dll和libeay32.dll到C:\WINDOWS\system32下;Linux下要安装curl扩展。 <?php $url=’http://t.qq.com’; $ch=curl_init(); $timeout=5; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $lines_string=curl_exec($ch); curl_close($ch); echo htmlspecialchars($lines_string); ?>5. fsockopen()函数 socket模式 socket模式能否正确执行,也跟服务器的设置有关系,具体可以通过phpinfo查看服务器开启了哪些通信协议,比如我的本地php socket没开启http,只能使用udp测试一下了。 <?php $fp = fsockopen(“udp://127.0.0.1″, 13, $errno, $errstr); if (!$fp) { echo […]

龙生   19 Feb 2013
View Details

GD 绘图输出中文

  一:首先查看一下系统下面有没有字体支持 安装字体:sudo apt-get install msttcorefonts 使用中文字体:simhei.ttf 如果没有GOOGLE下载,放到/usr/share/fonts/truetype/目录下,使用的时候直接调用,也可以放到你的网站目录下。 <?php $im = imagecreate(400,300); $black = imagecolorallocate($im, 255, 0, 255); $white = imagecolorallocate($im, 255, 255, 255); $font = “/usr/share/fonts/truetype/msttcorefonts/simhei.ttf”; $string = “this is my second try”; $chinese = “我的好朋友是谁”; //imagestring($im, 10, 10, 10, $string, $white); //imagestring($im, 30, 30, 20, $chinese, 1); imagettftext($im, 20, 0,10, 10, $white, $font, $chinese); imageline($im, 10, 20, 100, 100, 1); header(“Content-type: image/png”); imagepng($im); imagedestroy($im); ?>转自:http://hi.baidu.com/bowengo/item/4e00acd95d2d15fd93a9743c  

龙生   19 Feb 2013
View Details

php绘图

  $size = 300; $image = imagecreatetruecolor($size,$size); //用白色背景,黑色边框画方框 $back = imagecolorallocate($image,255,255,255); $border = imagecolorallocate($image,0,0,0); imagefilledrectangle($image,0,0,$size,$size,$back); //画出白色背景 imagerectangle($image,0,0,$size-1,$size-1,$border); //画出黑色边框 $yellow_x = 150; $yellow_y = 75; $red_x = 100; $red_y = 160; $blue_x = 200; $blue_y = 160; $radius = 150; $yellow = imagecolorallocatealpha($image,255,255,0,75); //此函数将黄色的alpha值调为75,就是透明度 $red = imagecolorallocatealpha($image,255,0,0,75); $blue = imagecolorallocatealpha($image,0,0,255,75); //画三个交叠的圆 imagefilledellipse($image,$yellow_x,$yellow_y,$radius,$radius,$yellow); //此函数就是我要在$image上画一个圆心($yellow_x,$yellow_y)半径为$radius/2颜色为$yellow的圆 imagefilledellipse($image,$red_x,$red_y,$radius,$radius,$red); imagefilledellipse($image,$blue_x,$blue_y,$radius,$radius,$blue); //输出正确的header header(“Content-type: image/png”); //输出结果 imagepng($image); imagedestroy($image);转自:http://yq329.blog.163.com/blog/static/117379566201131821330796/  

龙生   19 Feb 2013
View Details

如何使用PHP中的日期和时间函数

 (1)date 用法: date(格式,[时间]);如果没有时间参数,则使用当前时间. 格式是一个字符串,其中以下字符有特殊意义: U 替换成从一个起始时间(好象是1970年1月1日)以来的秒数 Y 替换成4位的年号. y 替换成2位的年号. F 替换成月份的英文全称.M 替换成月份的英文简称. m 替换成月份数. z 替换成从当年1月1日以来的天数. d 替换成日数. l 替换成星期几的英文全称. D 替换成星期几的英文简称. w 替换成星期几(数字). H 替换成小时数(24小时制). h 替换成小时数(12小时制). i 替换成分钟数. s 替换成秒数. A 替换成”AM”或”PM”. a 替换成”am”或”pm”. S 替换成序数字后缀,例如:”st”,”nd”,”rd”,”th”. 函数返回作过了替换的格式串.(2)getdate(时间) 返回一个哈希表,各下标是: “seconds” — 秒数 “minutes” — 分数“hours” — 小时数 “mday” — 日数 “mon” — 月份数 “year” — 年号 “yday” — 1月1日以来的天数 “weekday” — 星期几,英文全称 “month” — 月份,英文全名 (3)gmdate与date类似,但先将时间转换成格林威治标准时. (4)mktime 用法: mktime(小时数,分数,秒数,月,日,年);返回一个时间值,可用于其他函数. (5)time 用法: time(); 返回1970年1月1日零点以来的秒数.(6)microtime 用法: microtime(); 返回一个字符串,用空格分成两部分,后一部分相当于time()的返回值,前一部分是微秒数. (7)checkdate 用法: checkdate(月,日,年); 返回逻辑真或逻辑假.如果: [1]年在1900和32767之间(包括1900与32767); [2]月在1到12之间;[3]日在该月的允许日数范围内(考虑了闰年); 则返回逻辑真. (8)set_time_limit 用法:set_time_limit(秒数); 规定从该句运行时起程序必须在指定秒数内运行结束, 超时则程序出错退出.

龙生   19 Feb 2013
View Details
1 374 375 376 416