手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表分类:PHP

Web 浏览器,分辨率,操作系统最新分布数据

个人做网站的,公司做网站的,应该都会关心这个数据吧?该给自己的网页使用多大的尺寸?宽屏?窄屏?等等。。。

cnbeta上的文章,不过,我想应该是有用的,就复制了下来。做个保存,以后出去吹的时候也有点数据来源

新闻来源:webpagefx.com
Web 设计师真的可以忽视 IE6 了吗?显然不能,使用 IE6 的仍大有人在。本文搜集了最新的 Web 浏览器,屏幕分辨率以及操作系统的分布数据,Web 设计师可以籍此对自己的设计做一调整,比如,1024 以下的屏幕真的很少了,如果硬要照顾这个分辨率,你会发现,一个 800 像素宽的页面在 1440 的屏幕上看上太古怪了。本文数据来自 Wikipedia (OS | Browser), Market Share 等媒体。

不同屏幕分辨率分布

大小: 101.54 K
尺寸: 500 x 360
浏览: 1870 次
点击打开新窗口浏览全图 
可以看出,1024 以下的屏幕所占的比例已经很小了,其中,800x600 的屏幕只占 3.69%,所以,现在的 Web 设计师,除非做的是弹性页面设计,一般不会考虑 800 宽的屏幕,否则,800 像素宽的页面放在 1440 宽的屏幕上浏览实在是太不协调了。

其它屏幕尺寸占了 10.38%,我猜想,这 10.38% 中多数应该是移动浏览器,因为 Wap 一直没有真正发展起来,因此,单独针对移动浏览器进行设计也未必值得,Opera Mobile 这样的浏览器已经可以象桌面浏览器那样渲染网页,同样,那些基于代理渲染的浏览器更是和桌面的渲染结果没有什么区别,差别的只有屏幕尺寸,然而,移动设备 的屏幕尺寸实在太小了,只能让它自己左右滚动吧。

值得一提的是 iPhone,鉴于它的流行,很多博客站点都推出 iPhone 版,WordPress 已经支持 iPhone,然而仅限于布局相对简单的博客类站点,普通的站点,在 320 像素的屏幕上是很难不用滚动条完成布局的。
浏览器分布

 

大小: 72.14 K
尺寸: 500 x 335
浏览: 1915 次
点击打开新窗口浏览全图
 
这是国外的数据,是不是有些意外,IE6 的市场占有率仍然如此之高(国内还要高),仅次于 Firefox,因此,那些愤愤然声称不再支持 IE6 的设计师是不明智的。
 
Firefox 居首是实至名归,Chrome,Safari,Opera 仍是小众,不过鉴于 Google 的能力,Chrome 会有大作为。

操作系统分布

 
操作系统分布没有什么悬念,Windows XP 和 Vista 占了9成,Linux 一直很努力,但份额仍然只有 1%。

本文数据来源:http://www.webpagefx.com/blog/web-design/special-for-designers- resolution-browser-and-os-market-share-data-for-last-month/
编译:COMSHARP CMS 企业网站内容管理系统官方网站
来自于:http://www.cnbeta.com/articles/96087.htm

图片附件(缩略图):
大小: 61.9 K
尺寸: 495 x 376
浏览: 2233 次
点击打开新窗口浏览全图

Tags: 浏览器, 分辨率, 操作系统

PHP反射API--利用反射技术实现的插件系统架构

纯COPY,没仔细看。。。。【先申明,我COPY对这段代码,主要是看他reflectionClass的应用,并非关注插件的应用。。。】

有爱好的人,可以学习一下。。

http://www.e897.com/Article/wlbc/php/200908/5377.html
  1. /** 
  2. * @name  PHP反射API--利用反射技术实现的插件系统架构 
  3. * @author :PHPCQ.COM 
  4. */  
  5. interface Iplugin{  
  6.         public static function getName();  
  7. }  
  8. function findPlugins(){  
  9.         $plugins = array();  
  10.         foreach (get_declared_classes() as $class){  
  11.                 $reflectionClass = new ReflectionClass($class);  
  12.                 if ($reflectionClass->implementsInterface('Iplugin')) {  
  13.                         $plugins[] = $reflectionClass;  
  14.                 }  
  15.         }  
  16.         return $plugins;  
  17. }  
  18. function computeMenu(){  
  19.         $menu = array();  
  20.         foreach (findPlugins() as $plugin){  
  21.                 if ($plugin->hasMethod('getMenuItems')) {  
  22.                         $reflectionMethod = $plugin->getMethod('getMenuItems');  
  23.                         if ($reflectionMethod->isStatic()) {  
  24.                                 $items = $reflectionMethod->invoke(null);  
  25.                         } else {  
  26.                                 $pluginInstance = $plugin->newInstance();  
  27.                                 $items = $reflectionMethod->invoke($pluginInstance);  
  28.                         }  
  29.                         $menu = array_merge($menu,$items);  
  30.                 }  
  31.         }  
  32.         return $menu;  
  33. }  
  34. function computeArticles(){  
  35.         $articles = array();  
  36.         foreach (findPlugins() as $plugin){  
  37.                 if ($plugin->hasMethod('getArticles')) {  
  38.                         $reflectionMethod = $plugin->getMethod('getArticles');  
  39.                         if ($reflectionMethod->isStatic()) {  
  40.                                 $items = $reflectionMethod->invoke(null);  
  41.                         } else {  
  42.                                 $pluginInstance = $plugin->newInstance();  
  43.                                 $items = $reflectionMethod->invoke($pluginInstance);  
  44.                         }  
  45.                         $articles = array_merge($articles,$items);  
  46.                 }  
  47.         }  
  48.         return $articles;  
  49. }  
  50. require_once('plugin.php');  
  51. $menu = computeMenu();  
  52. $articles  = computeArticles();  
  53. print_r($menu);  
  54. print_r($articles);  
  55.   
  56.   
  57. //plugin.php 代码如下  
  58. <?php  
  59. class MycoolPugin implements Iplugin {  
  60.         public static function getName(){  
  61.                 return 'MycoolPlugin';  
  62.         }  
  63.         public static function getMenuItems(){  
  64.                 return array(array('description'=>'MycoolPlugin','link'=>'/MyCoolPlugin'));  
  65.         }  
  66.         public static function getArticles(){  
  67.                 return array(array('path'=>'/MycoolPlugin','title'=>'This is a really cool article','text'=>xxxxxxxxx));  
  68.         }  
  69. }  

Tags: 反射, 插件

IE6, IE7, IE8 CSS 兼容速查表

这个玩意,可以做网页的人必看手册啊。。。虽然我没有看过,但我还是留了一个备份。天知道我什么时候就会用到这玩意?

新闻来源:tutorialfeed.blogspot.com
现代 Web 设计与开发越来越看重浏览器兼容问题,IE 每个新版本的推出,都在 CSS 的标准化方面前进一大步,同时,也就不可避免地在 IE 的各个主要版本之间产生兼容问题,尽管 IE8 推出已有时日,使用 IE6的用户仍然相当可观。本文以速查手册的形式介绍 CSS (2.1 和 3)在 IE6,7,8 三个版本之间的兼容情况。

大小: 41.49 K
尺寸: 480 x 376
浏览: 1500 次
点击打开新窗口浏览全图

这套速查手册可以打印成 A3 尺寸,共2页,以下是各种不同格式下载:

本文来源:http://tutorialfeed.blogspot.com/2009/10/visual-cheat-sheet-css-compatiblity.html
翻译整理:COMSHARP CMS 企业网站内容管理系统官方网站

【由于以上内容下载需要google帐号,因此我这里做了本地备份,可以给那些没有google帐号的朋友提供方便】

1、两张GIF文件 

大小: 119.64 K
尺寸: 204 x 376
浏览: 1589 次
点击打开新窗口浏览全图

大小: 131.22 K
尺寸: 200 x 376
浏览: 1577 次
点击打开新窗口浏览全图

2、两个PDF文件

cheatsheet-page1.pdf

cheatsheet-page2.pdf

高春辉的DAL

提起高春辉,恐怕更多的人想到的是手机之家。其实,还有一款PHP界的软件是大家所熟知的,那就是ecshop。当然现在的ecshop已经不是高春辉的了。几经转手,现在ecshop已经是shopex的旗下产品了。

4月份的时候,高春辉提出了新的架构,并整理出了一份PPT与大家共享,与“手机之家新系统介绍及架构分享”有关,过了几天,他把DAL方面的特点整理了一下,还是有关 DAL~,认为有一些特色:

XML/HTML代码
  1. 我也觉得其实这个 DAL 的最核心功能就是如何自动缓存和清理缓存了。因为不让程序员缓存和清理,就的是程序自己来管理缓存和清理缓存,总得清理嘛。不过这个还是保密一下吧。起码不是某些人想的只能缓存单条数据,也不是某些人想的清理是按照单条方式的清理。当然另外的一个核心功能就是分库分表的自动和透明化,这个功能有很多软件都实现了,就不多说了。  

六个月过去了,高春辉终于放出了DAL 近期情况~,如果他愿意,估计可能会开源。如果东西很新鲜,那么极有可能引起一场革命。象他的ecshop一样,又或者象当年的ruby的 active record 。

真正的发布会带来什么呢?我也很期待

Tags: dal, 高春辉, 手机之家

phpQuery

想分析网页?不会写正则?这。。。一切都不是问题

在以前是不可想象的。但如今google的项目里有这个phpQuery,它可以让一切变得可能。。。

phpQuery is a server-side, chainable, CSS3 selector driven Document Object Model (DOM) API based on jQuery JavaScript Library.

Library is written in PHP5 and provides additional Command Line Interface (CLI).

如果你使用过jQuery,你会发现这一切是如此的相象。

PHP代码
  1. <?php  
  2.   
  3. include_once'./phpQuery.php' );  
  4.   
  5. $html = new phpQueryDocumentFile('xxx.html');  
  6. $title = $html->find('title')->text();  
  7.   
  8. echo $title;  
以上内容是取得网页的 title。多方便啊。。。

如果是取得某个class的内容呢?

PHP代码
  1. <?php  
  2.   
  3. //...include   
  4. //...new phpQueryDocument  
  5.   
  6. $html->find('div.test eq(1)')->html();  
  7. //表示取得div的class为test的,第一个匹配的元素中html内容  
呵呵,快去:http://code.google.com/p/phpquery/下载吧

Tags: phpquery