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

Nio认为:php的curl库在生成cookie文件时要及时清除

Nio在http://www.nioxiao.com/archives/949里说到,php的CURL库生成cookie文件时,应当及时清除,否则会发生意料不到的事情

对于php的curl,我想,在我的博客上有一篇介绍校内狗狗的文章,是yhustc写的。他就用到了这个cookie文件。主要是phpcurl在访问时,会把当前的cookie全部写到这个文件里。如果是个人使用,当然是没问题。如果要提供服务给别人,估计就会发现cookie文件不停的写,而且内容都不一样【估计这就是nio遇到的问题吧】

bopo则改进了yhustc的http类,他用的是tmpnam函数,生成一个唯一的,不同的文件。只要在进程内。文件都不会变啦。呵呵

我当初是判断用户登录,每个用户分配一个cookie文件,保证不会和其他人产生冲突。。。HOHO

但看看Nio说的最后一句话,又不太像,他说:

http://www.nioxiao.com/archives/949
  1. 特别需要注意的是,在完成抓取之后,需要把 cookie 文件删除,否则下次抓取时会自动使用原有的 cookie 数据,从而导致一些预想不到的错误(我们今天就被这个问题折腾了很久 :( )。  

 

但,好象每次访问都会生成新的cookie内容的吧?除非确实需要清空?这个问题,我是没有遇到过,暂时先记录一下。。

 

RegexIterator匹配和修改迭代器的数据集

本文来自phpCq.com,没有测试,主要是看了一下,它可以对数据进行正则匹配,想来对那些写文本数据库的人很方便吧?
取出一堆数据,平时用strpos来定位来判断,现在可以直接用数组的正则匹配,直接判断好。呵呵

 

http://www.phpcq.com/id/116.html
  1. <?php  
  2. /** 
  3. * 初定义数组... 
  4. * @author:PHP博客-技术-资源-技术站-面向对象  
  5.  */  
  6.     $array = array('apple','avocado','orange','pineapple');  
  7.     /** 
  8.      * 创建迭代器 
  9.      */  
  10.     $arrIterator = new ArrayIterator($array);  
  11.     /** 
  12.      * 使用正则表达式模式来匹配和修改迭代器的数据 
  13.      */  
  14.     $iterator = new RegexIterator($arrIterator,'/^a/');  
  15.       
  16.     print_r(iterator_to_array($iterator));  
  17.     /** 
  18.      * 输出结果:Array ( [0] => apple [1] => avocado )  
  19.      */  
  20. ?>        

Tags: regexiterator, 迭代器

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

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

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

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

不同屏幕分辨率分布

大小: 101.54 K
尺寸: 500 x 360
浏览: 1876 次
点击打开新窗口浏览全图 
可以看出,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
浏览: 1922 次
点击打开新窗口浏览全图
 
这是国外的数据,是不是有些意外,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
浏览: 2239 次
点击打开新窗口浏览全图

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
浏览: 1505 次
点击打开新窗口浏览全图

这套速查手册可以打印成 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
浏览: 1593 次
点击打开新窗口浏览全图

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

2、两个PDF文件

cheatsheet-page1.pdf

cheatsheet-page2.pdf