• Blog
  • Archives
  • Search
  • Comments
  • Tags
  • Links
  • xxshuo
  • RSS

有梦就有快乐[杨恒飞]

Reg | Login

人生旅途慢慢,但有梦就会有快乐!

Total: 24Page 1 of 41234Next ›

阅读全文

穷人和富人的经典差异
By On 2010-06-26, 5:21 PM | Category: 心情管理 | Comments: 2
Tags: 富人 , 穷人

阅读全文

file_get_contents与curl效率及稳定性问题
By coldstar On 2010-08-18, 1:59 PM | Category: WEB开发 | Comments: 0

做过好多抓取别家网站内容的产品,习惯了使用方便快捷的file_get_contents函数,但是总是会遇到获取失败的问题,尽管按照手册中的 例子设置了超时,可多数时候不会奏效:

$config['context'] = stream_context_create(array(‘http’ => array(‘method’ => “GET”,
 ’timeout’ => 5//这个超时时间不稳定,经常不奏效
 )
));
这时候,看一下服务器的连接池,会发现一堆类似的错误,让你头疼万分:
file_get_contents(http://***): failed to open stream…
不得已,安装了curl库,写了一个函数替换:
 
	function curl_get_contents($url){
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $url);				//设置访问的url地址
	//curl_setopt($ch,CURLOPT_HEADER,1);				//是否显示头部信息
	curl_setopt($ch, CURLOPT_TIMEOUT, 5);				//设置超时
	curl_setopt($ch, CURLOPT_USERAGENT, _USERAGENT_);	//用户访问代理 User-Agent
	curl_setopt($ch, CURLOPT_REFERER,_REFERER_);		//设置 referer
	curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);			//跟踪301
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);		//返回结果
	$r = curl_exec($ch);
	curl_close($ch);
	return $r;
}

如此,除了真正的网络问题外,没再出现任何问题。
这是别人做过的关于curl和file_get_contents的测试:
file_get_contents抓取google.com需用秒数:
2.31319094
2.30374217
2.21512604
3.30553889
2.30124092
curl使用的时间:
0.68719101
0.64675593
0.64326
0.81983113
0.63956594
差距很大吧?呵呵,从我使用的经验来说,这两个工具不只是速度有差异,稳定性也相差很大。建议对网络数据抓取稳定性要求比较高的朋友使用上面的 curl_file_get_contents函数,不但稳定速度快,还能假冒浏览器欺骗目标地址哦!
Tags: curl , file_get_contents

阅读全文

file_get_contents的超时处理
By coldstar On 2010-08-18, 1:11 PM | Category: WEB开发 | Comments: 0

  话说,从PHP5开始,file_get_content已经支持context了(手册上写着:5.0.0 Added the context support. ),也就是说,从5.0开始,file_get_contents其实也可以POST数据。

  今天说的这篇是讲超时的,确实在跨服务器提交的时候,不可避免的会遇到超时的情况,这个时候怎么办?set_time_limit是没有用的,只有用context中的timeout时间来控制。相反,我们不是要抑止,而是要管理。比如在超时返回错误后,进行一次尝试,就象js中的settimeout那样,对函数重新处理。错误超过3次或者5次后,我们就确实的认为无法连接服务器而彻底放弃。这,是一个好办法,应该值得推荐使用。其实。不全是file_get_contents,只要支持context的都应该加上,避免超时浪费时间。这样可以被支持的函数大致有:fsocketopen(该函数的最后一个参数。好象比较推荐在读stream的时候,使用stream_time_out函数进行控制),fopen(也是从PHP5开始加入context支持),file(PHP5加入支持),curl(curl有自已的变量CURLOPT_TIMEOUT)等 。

  在使用file_get_contents函数的时候,经常会出现超时的情况,在这里要通过查看一下错误提示,看看是哪种错误,比较常见的是读取超 时,这种情况大家可以通过一些方法来尽量的避免或者解决。这里就简单介绍两种:

一、增加超时的时间限制

二、一次有延时的话那就多试几次
 

Read more
Tags: file_get_contents

阅读全文

ajax xml操作实例说明
By coldstar On 2010-07-10, 10:40 AM | Category: WEB开发 | Comments: 1

一个使用ajax xml的操作的小例子,提供了 html asp js三个文件的源代码和在线示例程序。

在线演示地址:http://www.yanghengfei.com/demo/ajax-xml/school.html

Read more
Tags: xml , ajax

阅读全文

在ASP中实现UNIX时间戳的转换
By coldstar On 2010-07-09, 11:05 AM | Category: WEB开发 | Comments: 0

这两个函数分别用于标准时间转Unix时间戳和Unix时间戳转标准时间。用法在函数前面的注释里写得很清楚了。

'参数:strTime:要转换的时间;intTimeZone:该时间对应的时区
  
'返回值:strTime相对于1970年1月1日午夜0点经过的秒数
  
'示例:ToUnixTime("2008-5-23 10:51:0", +8),返回值为1211511060
  
Function ToUnixTime(strTime, intTimeZone)
    If IsEmpty(strTime) or Not IsDate(strTime) Then strTime = Now
    If IsEmpty(intTimeZone) or Not isNumeric(intTimeZone) Then intTimeZone = 0
    ToUnixTime = DateAdd("h",-intTimeZone,strTime)
    ToUnixTime = DateDiff("s","1970-1-1 0:0:0", ToUnixTime)
End Function
         
'把UNIX时间戳转换为标准时间
  
'参数:intTime:要转换的UNIX时间戳;intTimeZone:该时间戳对应的时区
  
'返回值:intTime所代表的标准时间
  
'示例:FromUnixTime("1211511060", +8),返回值2008-5-23 10:51:0
  
Function FromUnixTime(intTime, intTimeZone)
    If IsEmpty(intTime) Or Not IsNumeric(intTime) Then
        FromUnixTime = Now()
        Exit Function 
    End If
    If IsEmpty(intTime) Or Not IsNumeric(intTimeZone) Then intTimeZone = 0
    FromUnixTime = DateAdd("s", intTime, "1970-1-1 0:0:0")
    FromUnixTime = DateAdd("h", intTimeZone, FromUnixTime)
End Function
Tags: 时间戳

阅读全文

解决MySQL server has gone away问题的两种有效办法
By coldstar On 2010-06-25, 1:46 PM | Category: WEB开发 | Comments: 0

最近做网站有一个站要用到WEB网页采集器功能,当一个PHP脚本在请求URL的时候,可能这个被请求的网页非常慢慢,超过了mysql的 wait-timeout时间,然后当网页内容被抓回来后,准备插入到MySQL的时候,发现MySQL的连接超时关闭了,于是就出现了“MySQL server has gone away”这样的错误提示,解决这个问题,我的经验有以下两点,或许对大家有用处:

第 一种方法:

当然是增加你的 wait-timeout值,这个参数是在my.cnf(在Windows下台下面是my.ini)中设置,我的数据库负荷稍微大一点,所以,我设置的值 为10,(这个值的单位是秒,意思是当一个数据库连接在10秒钟内没有任何操作的话,就会强行关闭,我使用的不是永久链接 (mysql_pconnect),用的是mysql_connect,关于这个wait-timeout的效果你可以在MySQL的进程列表中看到 (show processlist) ),你可以把这个wait-timeout设置成更大,比如300秒,呵呵,一般来讲300秒足够用了,其实你也可以不用设置,MySQL默认是8个小 时。情况由你的服务器和站点来定。

第二种方法:

这也是我个人认为最好的方法,即检查 MySQL的链接状态,使其重新链接。

可能大家都知道有mysql_ping这么一个函数,在很多资料中都说这个mysql_ping的 API会检查数据库是否链接,如果是断开的话会尝试重新连接,但在我的测试过程中发现事实并不是这样子的,是有条件的,必须要通过 mysql_options这个C API传递相关参数,让MYSQL有断开自动链接的选项(MySQL默认为不自动连接),但我测试中发现PHP的MySQL的API中并不带这个函数,你重新编辑MySQL吧,呵呵。但mysql_ping这个函数还是终于能用得上的,只是要在其中有一个小小的操作技巧:

Read more
Tags: ping , mysql

阅读全文

DevKit 错误 '80004003' 未将对象引用设置到对象的实例
By coldstar On 2010-03-12, 11:04 AM | Category: WEB开发 | Comments: 0

新网互联的接口,注册域名时提示错误:
devkit 错误 '80004003'

未将对象引用设置到对象的实例。

../inc_api/xwhlAPI.asp,行 155

Read more
Tags: devkit
Total: 24Page 1 of 41234Next ›
  • View Model: Nomal | List
  • Category

    nginx (28)

    win7 (20)

    Windows (39)

    Linux (51)

    WEB服务器 (73)

    网站架构 (11)

    存储与缓存 (2)

    数据库技术 (20)

    WEB开发 (24)

    网站建设 (30)

    安全相关 (27)

    软件开发 (3)

    网络观察 (20)

    精彩瞬间 (20)

    心情管理 (49)

    个人收藏 (29)

  • Calendar

    « 2010年09月 »
    日 一 二 三 四 五 六
    1 2 3 4
    5 6 7 8 9 10 11
    12 13 14 15 16 17 18
    19 20 21 22 23 24 25
    26 27 28 29 30
  • Hot Tags

    nginx win7 iis apache linux mysql 破解 管理 mssql php access 漏洞 四博新云 seo 加速 驱动 centos w32dasm yum lvs asp mm rewrite gzip resin 优化 awk 架构 cache 创业 oracle dedecms ip_hash div+css 程序员 感谢google baidu 百度 老公 女人 shutdown 服务器 apache+tomcat 黑竹沟 小小说 tomcat pure-ftpd iis7 工作 mrtg
  • Comments

    呵呵,你是为我而写的,谢谢!这里...
    09-05 - 爽爽

    你还弄到博客上了,哈哈!
    09-03 - mjxhehe

    我也遇到这问题,正想找人问问呢。...
    08-26 - 爽爽

    我是在工作,没看讲的是用户体验么...
    08-24 - coldstar

    --!你还有这爱好! 咋不加...
    08-24 - 商鹏龙

    这下全部明白了。
    08-16 - 化工泵

    换句话说就是,圈子决定财富
    08-02 - PHPma

    学习了,谢谢!
    07-21 - ajcheng

    不知道你这里用的什么备份工具。我...
    07-19 - apple

    牛哈~~~
    07-17 - Lanyd

  • FriendLinks

    99 Roses[叶涛]

    Alibaba DBA Team

    fovweb

    Franky

    MySQL 中文网

    nginx

    sclife

    SEM一家之言

    Zac 的SEO博客

    [支付宝] 冯大辉

    回忆未来[张宴]

    好朋友

    懒人运维

    田逸的博客

    简朝阳 Sky Jian

    网易高级DBA

    脸蛋网

    花的嫁纱

    西西说

    雨·漫步

    More

  • Others

    Article 415, Comment 100.

    Powered by SaBlog-X.

    Designed by Giki+Kula.

    有梦就有快乐[杨恒飞] All rights reserved.

    陕ICP备07009322号