多数大学生出来选择的工作和专业无关
首页 > 专业知识

PHP超时处理全面总结

时间:2018-02-07 16:23:36 [来源]:郑州PHP培训学校

   PHP超时处理全面总结

  在PHP开发中工作里非常多使用到超时处理到超时的场合,我说几个场景:
  1. 异步获取数据如果某个后端数据源获取不成功则跳过,不影响整个页面展现2. 为了保证Web服务器不会因为当个页面处理性能差而导致无法访问其他页面,则会对某些页面操作设置3. 对于某些上传或者不确定处理时间的场合,则需要对整个流程中所有超时设置为无限,否则任何一个环节设置不当,都会导致莫名执行中断4. 多个后端模块(MySQL、Memcached、HTTP接口),为了防止单个接口性能太差,导致整个前面获取数据太缓慢,影响页面打开速度,引起雪崩5. 。。。很多需要超时的场合
  这些地方都需要考虑超时的设定,但是PHP中的超时都是分门别类,各个处理方式和策略都不同,为了系统的描述,我总结了PHP中常用的超时处理的总结。
 
  【Web服务器超时处理】
  [ Apache ]
  一般在性能很高的情况下,缺省所有超时配置都是30秒,但是在上传文件,或者网络速度很慢的情况下,那么可能触发超时操作。
  目前 apache fastcgi php-fpm 模式 下有三个超时设置:
  fastcgi 超时设置:
  修改 httpd.conf 的fastcgi连接配置,类似如下:
  <IfModule mod_fastcgi.c>
  FastCgiExternalServer /home/forum/apache/apache_php/cgi-bin/php-cgi -socket /home/forum/php5/etc/php-fpm.sockScriptAlias /fcgi-bin/ "/home/forum/apache/apache_php/cgi-bin/"AddHandler php-fastcgi .php
  Action php-fastcgi /fcgi-bin/php-cgi
  AddType application/x-httpd-php .php
  </IfModule>
 
  使用PHP免费发送定时短信
  背景:老妈年纪大了,文化程度不高,但是需要每天了解天气信息才能下地工作,也就无法通过网络获取天气,只能通过电视。于是寻思着自己抓取网络上的天气信息,通过手机短信发送给老妈。
  问题:自己不可能每天定时给老妈发送天气短信,现有的天气预报订阅短信又是要钱的。
  解决:
  免费发送短信到手机
  方案1:使用飞信API
  由于飞信目前没有开发平台,现有API都是第三方开发,貌似是通过破解WAP飞信或者3G飞信,模拟浏览器的行为来发短信。另外Google code上有开源的php飞信发送类php-fetion(http://code.google.com/p/php-fetion/)。这些飞信接口方便了定时短信的开发。
  唯一的缺点就是第三方的API不稳定,也有飞信账号泄露的风险。
  此处,我使用http://3.ibtf.sinaapp.com/提供的飞信API进行短信发送。该站本身挂在新浪SAE上,源代码可以在http://www.oschina.net/code/snippet_202258_9754找到(里面提供下载地址)。
  该API只需提供发送者手机号,密码,接受者手机号,消息内容作为url参数即可。唯一需要注意的是中文的乱码问题(使用gbk而不是utf-8编码,直接输入中文乱码,输入中文的gbk编码手机接收正常),可以使用iconv函数或者加上参数”&u=1”解决。
  举例:调用免费API
  http://2.ibtf.sinaapp.com/?phone=手机号&pwd=飞信密码&to=接收手机号(必须为飞信好友或自己的手机号)&msg=消息内容&u=1(解决乱码问题)PHP系列学习之日期函数
  PHP是一门非常令人惊奇的语言。它足够强大(最大的博客(wordpress)的核心语言),它足够广泛(运行在最大社交网站facebook上),它足够简单(作为初学者首选入门语言)。在低成本的机器上运行良好。而且php语言有很多非常不错的服务器套件(如WAMP和MAMP),很方便的安装在你的机器上。PHP有非常丰富的库资源,便于开发者很容易的处理一些业务。由于我们在项目中与日期接触最多,所以今天就从日期函数入手学习。
  举一个简单的date例子
  我将使用echo命令把内容输出到我们的客户端(浏览器)。我将使用下面的代码做为基础代码。
  <!DOCTYPE html>
  <html lang="en">
  <head>
  <meta charset="utf-8" />
  <title>Getting started with dates in php5</title>
  </head>
  <body>
  <?php
  date_default_timezone_set('Asia/Shanghai');echo "Today is ",date('l');
  ?>
  </body>
  </html>
  你将在你的浏览器里看到如下的内容。
  Today is Friday
  这个函数输出星期几的文本格式。date函数至少需要一个字符参数(这个参数告诉我们怎样格式化当前日期)。
 

上一篇:PHP经常容易记乱的知识

下一篇:看PHP如何生成的条形码