易栈网-膘叔

浏览模式: 标准 | 列表 | 图文
试用microsoft web apps

试用microsoft web apps

MSN提示我有一封新邮件的时候,还以为又是垃圾邮件。打开后才发现,原来是微软社区过来的邮件,告诉我hotmail又有了新的features。看了一下邮件,原来最主要的是在skydriver里面把web apps也整合了。就是传说中的在线office。

试用了一下,感觉还行,只是功能嘛。与传统相比可就差太多了。不过这也没办法,毕竟一个是WEB,一个是软件。word,就别想太多了。和那些所见所得编辑器差不多。没什么好讲的。PPT我不感兴趣,excel嘛,如果不试公式,我想也没有多少用的机会。因此onenote就是我的首要测试了。

在office里面,也就一个onenote是我感兴趣的软件,可惜不支持在线数据,因此有了这个功能后,我就相对关注了一下,做了点小测试。

03e27ad436454ce857bc0026d1fe2e54

还算满意吧?毕竟是WEB版嘛,你哪能要求那么多。。。

正如我图中所说的,看来,致命的问题还是速度呀,在国内,没速度怎么行?目前onenote我已经在本地不使用了,改用wiz来管理我的一些知识库以及安排日常事项,小型软件也有小型软件的作用。

最希望的就是wiz能够开放FTP存储功能(可以直接使用第三方Ftp),这样就可以不受wiz限制了。数据啥的也会比较放心一点。现在的版本,不敢存私人数据。

TCPDF:php classes for generating pdf documents

TCPDF:php classes for generating pdf documents

手册中介绍PHP生成PDF用的是fpdf,网上也有一些代码其于Fpdf的看起来好象都不错,但是前提是有fpdf。。因此后来都放弃了。
这一个php class我没有试过,但是看上去好象不错,因为:1开源2原生PHP,不用组件(听说,没试过。)主要是看它可以直接把网页生成PDF,因为他支持html,xhtml,css。所以感觉不错

TCPDF is an Open Source PHP class for generating PDF documents.
TCPDF project was started in 2002 and now it is freely used all over the world by millions of people. TCPDF is a Free Libre Open Source Software (FLOSS).

官方的说明也很详细:

Main Features:

  • no external libraries are required for the basic functions;(看来也只是针对基本功能,不过我想应该够了。)
  • all ISO page formats, custom page formats, custom margins and units of measure;
  • UTF-8 Unicode and Right-To-Left languages;
  • TrueTypeUnicode, OpenTypeUnicode, TrueType, OpenType, Type1 and CID-0 fonts;
  • Font subsetting;
  • methods to publish some XHTML + CSS code, Javascript and Forms;
  • images, graphic (geometric figures) and transformation methods;
  • native support for JPEG, PNG and SVG images;
  • 1D and 2D barcodes: CODE 39, ANSI MH10.8M-1983, USD-3, 3 of 9, CODE 93, USS-93, Standard 2 of 5, Interleaved 2 of 5, CODE 128 A/B/C, 2 and 5 Digits UPC-Based Extention, EAN 8, EAN 13, UPC-A, UPC-E, MSI, POSTNET, PLANET, RMS4CC (Royal Mail 4-state Customer Code), CBC (Customer Bar Code), KIX (Klant index - Customer index), Intelligent Mail Barcode, Onecode, USPS-B-3200, CODABAR, CODE 11, PHARMACODE, PHARMACODE TWO-TRACKS, QR-Code, PDF417;
  • Grayscale, RGB, CMYK, Spot Colors and Transparencies;
  • automatic page header and footer management;
  • document encryption and digital signature certifications;
  • transactions to UNDO commands;
  • PDF annotations, including links, text and file attachments;
  • text rendering modes (fill, stroke and clipping);
  • multiple columns mode;
  • bookmarks and table of content;
  • text hyphenation;
  • automatic page break, line break and text alignments including justification;
  • automatic page numbering and page groups;
  • move and delete pages;
  • page compression.

这里也还有一些例子,有61个之多:

  1. Simple PDF with default Header and Footer: [PHP] [PDF]
  2. Simple PDF without Header and Footer: [PHP] [PDF]
  3. Custom Header and Footer: [PHP] [PDF]
  4. Cell stretching: [PHP] [PDF]
  5. Multicell: [PHP] [PDF]
  6. WriteHTML and RTL support: [PHP] [PDF]
  7. Independent columns with WriteHTMLCell: [PHP] [PDF]
  8. External UTF-8 text file: [PHP] [PDF]
  9. Image: [PHP] [PDF]
  10. Multiple columns: [PHP] [PDF]
  11. Colored Tables: [PHP] [PDF]
  12. Graphic Functions: [PHP] [PDF]
  13. Graphic Transformations: [PHP] [PDF]
  14. Javascript and Forms: [PHP] [PDF]
  15. Bookmarks (Table of Content): [PHP] [PDF]
  16. Document Encryption: [PHP] [PDF]
  17. Independent columns with MultiCell: [PHP] [PDF]
  18. Persian and Arabic language on RTL document: [PHP] [PDF]
  19. Non unicode / Alternative config file: [PHP] [PDF]
  20. Multicell complex alignment: [PHP] [PDF]
  21. writeHTML alignment: [PHP] [PDF]
  22. CMYK colors: [PHP] [PDF]
  23. Page Groups: [PHP] [PDF]
  24. Object Visibility: [PHP] [PDF]
  25. Object Transparency: [PHP] [PDF]
  26. Text Clipping: [PHP] [PDF]
  27. Barcodes: [PHP] [PDF]
  28. Multiple page formats: [PHP] [PDF]
  29. Set PDF viewer display preferences: [PHP] [PDF]
  30. Colour gradients: [PHP] [PDF]
  31. Pie Chart Graphic: [PHP] [PDF]
  32. EPS/AI vectorial image: [PHP] [PDF]
  33. Mixed font types (TrueType Unicode, core, CID-0): [PHP] [PDF]
  34. Clipping masks: [PHP] [PDF]
  35. Line styles with cells and multicells: [PHP] [PDF]
  36. Text Annotations: [PHP] [PDF]
  37. Spot Colors: [PHP] [PDF]
  38. NON-embedded CID-0 CJK font: [PHP] [PDF]
  39. HTML Justification: [PHP] [PDF]
  40. Booklet (double-sided pages): [PHP] [PDF]
  41. File attachment: [PHP] [PDF]
  42. Image with Alpha Channel Transparency: [PHP] [PDF]
  43. Disk caching: [PHP] [PDF]
  44. Move, Copy and delete page: [PHP] [PDF]
  45. Table Of Content with Bookmarks: [PHP] [PDF]
  46. Text hyphenation: [PHP] [PDF]
  47. Transactions and UNDO: [PHP] [PDF]
  48. Table header and rowspan: [PHP] [PDF]
  49. TCPDF methods in HTML: [PHP] [PDF]
  50. 2D Barcode (QR Code): [PHP] [PDF]
  51. Full page background: [PHP] [PDF]
  52. Digital Signature Certification: [PHP] [PDF]
  53. Javascript functions: [PHP] [PDF]
  54. XHTML Form: [PHP] [PDF]
  55. Font Dump: [PHP] [PDF]
  56. Crop Marks and Registration Marks: [PHP] [PDF]
  57. Cell vertical alignments: [PHP] [PDF]
  58. SVG Image: [PHP] [PDF]
  59. Table Of Content with HTML templates: [PHP] [PDF]
  60. Advanced page settings: [PHP] [PDF]
  61. XHTML + CSS: [PHP] [PDF]

可以尝试试用一下吧。

博客细微调整

博客细微调整

晚上对博客模版进行了细微调整,把顶部的百度广告换成了google的图片广告。因为百度的广告,文字性的看上去很难看,不如google图片看起来漂亮。

对代码框的宽度进行了微调,原来的宽度是98%,现在是78%,这样,在文章内容右侧有图片的时候,代码框仍然可以显示在主体中,而不是象以前,因为文章内容右侧有图片,代码框又太宽,而导致大量的内容沉到下边去。

文章底部的百度广告和淘宝客全部去掉。同时把页面底部的阿里妈妈广告提到上面来。原来内容页广告太多了。影响美观。(虽然我正在用YII重新尝试,但适当的美化页面还是需要的)

至此,页面上就没有百度广告了,由于百度广告我已经有了80块钱,如果全部撤掉,就太可惜了。因此在左侧栏的tag上方,放置了百度广告。希望可以早日满100元就可以撤下来了。

其实还有部分的模版中嵌有广告,有些我都不记得了,也不想再重新折腾,随便吧。。。最近下载了fvzone的reborn模版。正在尝试用yii嵌套,因为他的代码里全是wp的函数,所以改起来有点累。。

zen coding for editplus

前段时间我推荐了zen coding,并为此用上了notepad++,感觉在作网页的时候还行。而且,我的同事用dreamweaver的,也用上了它,感觉同样很爽。比如他输入:

div#page>(div#header>ul#nav>li*4>a)+(div#page>(h1>span)+p*2)+div#footer
生成如下页面:
<div id="page">
<div id="header">
<ul id="nav">
<li><a href=""></a></li>
<li><a href=""></a></li>
<li><a href=""></a></li>
<li><a href=""></a></li>
</ul>
</div>
<div id="page">
<h1><span></span></h1>
<p></p>
<p></p>
</div>
<div id="footer"></div>
</div>
早上推荐给小茗时,他说,Zen coding有for editplus的了。欣欣下载下来。运行后却发现,生成后的代码与官方不一样,看来还是有待改进啊,zen coding for editplus生成的代码是:
<div id="page"></div>
<div id="header">
<ul id="nav">
<li>
<a href=""></a><div id="page"></div>
<h1>
<span></span><p></p>
<p></p>
<div id="footer"></div>
</h1>
</li>
<li>
<a href=""></a><div id="page"></div>
<h1>
<span></span><p></p>
<p></p>
<div id="footer"></div>
</h1>
</li>
<li>
<a href=""></a><div id="page"></div>
<h1>
<span></span><p></p>
<p></p>
<div id="footer"></div>
</h1>
</li>
<li>
<a href=""></a><div id="page"></div>
<h1>
<span></span><p></p>
<p></p>
<div id="footer"></div>
</h1>
</li>
</ul>
</div>
这个与标准的偏 差实在是太大了。。。不过。在简单的情况下,还是可以使用的。将就着喽。总比没有的好。

下载地址为:http://www.vfresh.org/w3c/914

测试phprpc_client for SAE

测试phprpc_client for SAE

为了测试phprpc_client for SAE,到小菜鸟的app网站上把他的API全部复制到SAE的空间里,做了一点测试。有不少功能呢。每个例子最后我都用highlight_file把当前文件全部打印出来。可以,写的时候就可以做参考了。

事实上也没有什么 好参考的,小菜鸟的网上有的是代码,还有演示,我这里只是仅仅作了COPY而己。

对于最后的页面显示时间,这个就涉及到网络关系了,和实际执行时间并没有太大的联系,纯粹一看。

很多例子都在:

小菜鸟的APP网站是:MYWS,对了。小菜鸟还做了一个Ecshop的皮肤,仿凡客,也不错,演示在:http://shop.17kaixin8.com/,如果觉得好,也可以向他购买哦。

免费的用户行为跟踪采集

免费的用户行为跟踪采集

这里提的用户行为分析并不是说用户实际在做什么,而是分析大多数用户在你的站点上关注些什么。虽然这些都可以通过统计软件分析得出,但你真的了解用户在做什么吗?
你知道你的用户最关注你的页面的哪一部分?哪 一块内容被点击的最多?
记得好象在08年的艾瑞咨询贴出的几个图片上,介绍了一些用户行为分析的图片,后来又在google adsense的PDF中看到了这些。那些图片上最热点,google adsense就说了,在这些区域放置广告或者在周围放置,被点击、被看到的机率远远超过放在其他位置。
但这些专业的软件怎么来呢?以前在篱笆的时候,江闽找过一款,好象也是付费的,免费测试只有一段时间,前段时间52shidai.com站长也介绍过一款,但免费的好象只能分析10个用户的行为(不记得是不是这样,反正是受限的)
因此,看到虫少侠贴的这篇东西,还是要收藏一下,并与各位共享:
c52350bd75ea0ccba6611320823925b2

Userfly

Userfly可以提供免费的网页访客动作记录服务。只需要在网页中添加一段简单的Javascript代码,就可以记录访客从打开该网页到关闭整 个过程中的动作。 Userfly能够记录的内容包括鼠标的移动、点击以及键盘输入等动作。下面这个视频很好的讲解了Userfly的使用方法和主要的功能http://userfly.com
免费用户每个小时记录10位用户(10个IP)的动作。Userfly也提供收费服务,除了可以记录更多的用户外,还支持身份验证和网页加密。对于网站拥 有者来说,Userfly可以很方便的对用户行为进行检测和分析,通过A/B Testing等方法为网站UI/UE提供非常有价值的信息。但是对于很多网页访问者来说,如果知道他们所浏览的网页有这样的功能,可能就会敬而远之了。

Mouseflow
mouseflow是一款在线分析工具,它能对访客的浏览习惯和鼠标操作行为进行跟踪,从而获取人们对页面的关注范围和操作习惯,为你对页面进行优化提供了重要依据。它将汇总分析人们在页面上的鼠标操作动作,并以直观的“热区图”形式反映出来。

打个比方:大家都见过baidu和google的页面热区图,从图中可以看出用户对于页面最点击最多,也就是最关注的区域。那么,如果你的站出现在红、黄色区域中,将收到的点击次数也将是最多的。
在自己的站上分析出热区图数据,把访客最关注的内容放到热区范围内,形成对网站内容和布局层面的优化。我们就用mouseflow来完成这项工作。首先需要在你的网站上部署mouseflow跟踪代码。去http://mouseflow.com注 册,然后添加需要进行鼠标动作跟踪的网站之后就能得到跟踪代码,把它部署到你网站中。然后mouseflow就可以为你记录鼠标动作了。但给出分析数据需 要等几个小时的时间。当然,时间越长,记录的鼠标数据也越多,分析出来的数据也越准确。等待几天后再登陆mouseflow,就可以看到 mouseflow详尽的统计数据了。点击View stats,可以查看网站的状态数据。mouseflow可以为免费帐户每月保存并分析100条操作数据。在这个页面里还有:页面浏览量、平均访问深度、 平均访问时长、web页面情况、最流行页面、最热页面等统计数据。便于对网站的整体情况有一个大致了解。

接下来是查看跟踪记录。在这个页面中我们可以查看到访客情况信息。如访客的地理位置,来源链接,进入页面,浏览页面量,停留时间,浏览器等。最酷的 是,点击绿色播放按钮,还可以回放某访客在你页面上的每一次鼠标操作动作。看看他在浏览你的页面时做了怎样的操作。比如鼠标在哪里点击了,并且完整地回放 是怎样浏览你的页面的。

然后就是重点中的重点了:热区分析。mouseflow可以分析你的每一个页面数据。比如一个页面的的鼠标点击热区,以及视觉热区,红色为热,蓝色为冷。

ClickTale

ClickTale是一家国外的免费网站统计服务网站,但ClickTale并不以流量统计见长,它是对你的网站访客浏览行为进行分析的一个工具, 以类似视频的方式将访问者在你的网站上进行的操作全部记录下来,你可以在线观看也可以下载到电脑上。利用ClickTale的访客行为视频记录,可以帮你 更好的布局你的网页,给访问者带来更好的用户体验,以使你的网站回头客越来越多!有点类似Free8之前介绍的CrazyEgg,不过ClickTale 提供的是访客动态行为记录,CrazyEgg提供的是网页热点分析图像,各有所长,可同时使用,相互参考。

网址:http://www.clicktale.com

一个被忽略的正则功能

一个被忽略的正则功能

在setting sun的博客上发现一篇 文章,他认为:

$p = "/^(?<ip>.*) (?<time>.*)$/";
$s = "10.4.0.111 2009-09-09";
preg_match($p, $s, $m);
print_r($m);

输出:

Array ( [0] => 10.4.0.111 2009-09-09 [ip] => 10.4.0.111 [1] => 10.4.0.111 [time] => 2009-09-09 [2] => 2009-09-09 )
这个数组中有ip,time的key,他认为这是PHP5.3的功能。回复中echo说没什么特别。

事实上,这个还真不是php5.3的功能,它是PHP4.3开始就有的功能。详情可以看手册:

Pattern Syntax -- Describes PCRE regex syntax这一章。其中有一段就是:
It is possible to name the subpattern with (?P<name>pattern) since PHP 4.3.3. Array with matches will contain the match indexed by the string alongside the match indexed by a number, then.
所以,这还真不是啥新功能,只是我们很少用到而已。顺便说一句,今天的lamp分享中,祁宏还真的提到了这一点(关于分享内容我写了博客,但祁宏讲的内容,我没有详细记录参加lamp聚会有感 ),所以我才特别有印象。
本想回复到setting sun的博客上的,但。。。后来打不开了,原文网址为:http://www.setting.cc/blog/archives/2.html
参加lamp聚会有感

参加lamp聚会有感

做技术的难免都会遇到技术分享这个词,其实,它并不难懂也不难理会,只是以前很多人更多喜欢自己独自享受,以防影响到自己的职业。但到了近几年,技术分享这个词越来越被大多人所提及,毕竟你一个人了解的技术也是有限的,在圈内推广或者分享的时候,你虽然把你的经验与他人分享了,别人可能学会了你的东西、技术,但是你也相对的了解了其他的技术细节,这是你一个人的时代无法得到的。
单兵作战的时代早就过去了。现在讲究的是团队作战,当然个人技术很可能会占有主导地位,但你总不是万能的。
就象这次lamp聚会,我更想听的是逍遥冰心:《领域驱动设计简述》和蒙显仁:《LAMP在51座席项目中的应用》,遗憾的是这两位都没有来,相反,我却在我认为意义不大的演讲中获取了很多有用的东西,比如滕振宇:《Check in Dance》,真正让我了解到原来check in,并非那么简单,其实在我们的项目中,使用版本控制的时候,一般情况下,都会差不多半天check一次吧。但滕振宇讲的技续集成、atdd等让我受益匪浅,虽然他用的是c#而并非PHP,但是他的一些工具和他的作法很值得推广,比如红绿灯机制、rabbit之类的(参考一些大公司)。如果是重要项目,甚至有小熊机制(得到小熊的人才能checkin代码)这对于小型公司的人来说确实比较难以遇到。事实上我也一直在小型公司打拼。虽然我一直认为我不是做技术的料。滕振宇让我意识到合理的利用工具,绝对是可以增加工作效率的。但我却还是用不到这些,在小公司,并非以产品为主导的公司,如电子商务,一切都是以开发效率至上的,东西错了可以改(只要不涉及到钱)。所以什么单元测试啥的很多时候是用不到的。虽然小公司也有UserStroy,但效率、效用并不如大公司来的那么彻底。

再谈一下方言的《优秀产品欣赏》,方言给了我们很好的产品介绍,以及对于一个产品的分析,品析了玉溪香烟,对于用户忠诚度、品牌认知度、推广度等进行了简要的介绍(其实上就是在分析一款产品对于用户来说有哪些是可以控制并拿来利用的。)还介绍了MacBook,并坦言在自己公司也推广了4台。事实上我对于MB也是有点想法的,只是闲钱不多,没办法了,忍忍吧。最后他介绍了自己的一个做了两年的产品,看他演示的时候感觉好象不错,但是在线版的说实话,不敢用。真的,在国内,凡是涉及到用户信息的,我还真是不太敢使用,我越来越胆小了。但那款软件,感觉上真不错。最起码他在演示的时候显现出来的功能让我感觉很爽。是类似网页设计的。

其实祁宏:《正则表达式入门》和Ben:《基于 Zend Framework 的 Web 开发实践》都不错,只是这两个东西对我来说已经了解过很多次,所以相对就没有特别的关注。祁宏(并非足球运动员哦)的正则表达式并非他所言讲的只是初级的,到后面的内容已经是一般项目中用不到的内容了。有点深后,反而影响了大家的兴趣,因为他也不可能每一句都讲解的非常详细,反而就觉得不太实用了。举两个实际例子的话,或许会好上很多(比如采集网页啥的。如何写上一些关键代码,可能会更吸引人。),regexbuddy这个工具实在太出名了。验证正则表达式,几乎都会用到吧?Ben的ZF框架介绍的不错,只是时间有点拉长了(注重了细节而没有把如何应用架构列的详细)如果真要介绍ZF的流程性操作,bootstrap可是有的讲了。板爷也说了,真要讲ZF,三天三夜也讲不完啊。说实话,做WEB项目,我还真是很少有看到拿ZF来做的,虽然我也比较推荐(因为有完整的团队在支持而不是那一些个人框架,说不定哪天就不支持了,那才郁闷比如我们现在用的thinksns,那真叫一个郁闷啊。)ZF可拿来说的事还真不少,MVC这块除了V之外,M和C都是让人很头疼的。M吧,一直没有一个完整的model类,全部是通过zend_db_table,zend_db_table_gateway,..table_row等进行CRUD,当然要说select的话,他还提供了一个zend_db_select(这是支持连贯操作的类),对于表关联操作,我记得zend官方也说过,好象没有一个特别完美的方法,连他们自己对于zend_db_table_gateway都不满意,更不用说用户了。。。。C嘛。因为涉及到front_controller,就又显得复杂了一点。真想程序逻辑与business logic完全分开,那真的就要等逍遥冰心:《领域驱动设计简述》了。V。。要么不扩展,如果真扩展了。那些View_Helper类,几乎完全作废。

完事,对于此次分享会我是受益颇多,毕竟有些想法是我以前没有想到的。如果以后还有这种机会我还是想去,当然尽量不要太远的。HOHO。对于滕振宇所提的软件协会的一些探讨会,感觉不错,只是不知道有没有时间去听了。

听说一些老外的分享会也不错,但我这个人有点闷骚,不太喜欢讲。如果用电脑交流或许会更好一点。所以,我更多的只能适合作为一个旁听者而不是演讲者了。再加上,我也应该是属于野路子编程,其间之事,实不足为外人道也。Over

结束前突然想起一位朋友说的我聚会后的博客更新很快。其实,这只是对于听大家分享内容的一点笔记而己。由于我没有带任何笔、纸等 相关用来记忆的东西,在听完分享后,为了防止自己遗忘,总要想个办法记录下来,既是一种记录也是加深自己的印象,对于分享中了解的东西做一点归纳,哪些是自己能够吸收的,哪些是可以听过就忘的,哪些是未来想要了解的。这些,还是很重要的。

本次活动由ThinkInLamp牵头举办,发起人为三马,活动网址:http://blog.thinkinlamp.com/?p=174,本篇我听完分享后的个人感想而已

基本实现 phprpc_client For SAE

基本实现 phprpc_client For SAE

自从申请了SAE后,不知道用来干什么 ,于是就有了利用SAE监控网站 ,后来我想应该把PHPRPC移过去吧,于是就开始了简单的移植。由于SAE的【http://wiki.sae.sina.com.cn/doku.php?id=sae%E5%BC%80%E5%8F%91%E8%80%85%E6%89%8B%E5%86%8C#%E8%BF%90%E8%A1%8C%E7%8E%AF%E5%A2%83%E7%AE%80%E4%BB%8B】,所以在移植前要注意,比如没有ini_get,ini_set之类的。而且sae取消了fsockopen远程地址,是改用curl的。因此对于这些也需要改的

经过一个下午的折腾,基本上完成了移植,可以查看:http://nsblog.sinaapp.com/test.php,这是客户端。http://nsblog.sinaapp.com/是服务端。服务端公布两个简单的方法:trim,hello。

大家可以测试一下。(目前还没有测试proxy,加密等其他协议之类的。gzip可以用)

其他协议周一继续测试 ,等稍微稳定后,我会向andot提交代码。

简单的PHP类,判断远程地址状态

简单的PHP类,判断远程地址状态

啥也不说了。直接上代码了。主要是用来检查路径文件是否存在:

class Headers
{
static private $headers;
static private $getmodes = array('fsock','curl');
static private $getmode;

static private $type;

public static function init ($type = 'status'){
self::$type = strToLower( $type );
}

public static function get ( $url ,$mode='')
{
list( $host, $uri , $url ) = self::initURL($url);
if($mode && in_array( strToLower( $mode ), self::$getmodes )){
self::$getmode = $mode;
}
return self::_get( $host , $uri ,$url);
}

private static function initURL ( $url )
{
$urls = parse_url( $url );
return array($urls['host'],$urls['path'],$url);
}

private static function _get ( $host , $uri,$url )
{
if(self::$getmode == 'curl' && function_exists( 'curl_init' )){
return self::_curlopen($host,$uri,$url);
}else{
return self::_fsockopen($host,$uri);
}
}
private static function _curlopen ($host,$uri,$url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url );
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_HTTPGET, 1);
curl_setopt($ch,CURLOPT_NOBODY,1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
$result = curl_exec($ch);
// echo '<pre>';
// print_r( curl_getinfo($ch) );
// echo '</pre>';
curl_close($ch);
if(self::$type == 'status'){
return subStr( $result, 0 , strPos( $result, "" ) );
}
return array_filter(explode( "", $result ));
}

private static function _fsockopen ($host,$uri)
{
$headers = array();
$header=$errno=$errstr='';
$fp = fsockopen ($host, 80, $errno, $errstr, 60);
if ($fp){
fputs ($fp, "GET $uri HTTP/1.0");
if(self::$type == 'status' ){
$get=fgetss( $fp );
return trim( $get );
}else{
while (!feof($fp)){
$char = fgetc($fp);
if($char === "\n"){
if (ord($header) === 13){
return $headers;
}else{
array_push($headers, trim($header));
}
$header = '';
}else{
$header = $header.$char;
}
}
}
fclose ($fp);
}
}
}
$s = microtime(1);
$get = Headers::get('http://www.neatstudio.com/testtt.php','curl');
echo '<pre>';
print_r( $get );
echo '</pre>';
echo( sprintf( "%0.6f" , (microtime(1)-$s) ) );

curl函数中我有一段是注释掉的。如果只是为了取状态,直接运行完后curl_getinfo就OK了。然后取其中的http_code,就可以知道当前的状态。
当然。http_code的具体对应可以参考常用http code

【后记】看到BOPO的回复,才发现。。。郁闷,原来get_headers就可以了。我居然忘了这个函数。傻掉了我。唉。。。。不过这也是从PHP5才开始有的函数。看来我对手册的了解度下降了