php超时问题的研究
来源:互联网 发布:上海电梯灵异 知乎 编辑:程序博客网 时间:2024/05/16 05:16
<?php//php的超时问题/************php脚本本身的超时问题*************//* * 脚本的超时时间设置 set_time_limit(秒数); 设置为0就是一直运行不超速 * 网上找到的解释 * 当你的页面有大量数据时,建议使用set_time_limit()来控制运行时间,默认是30s,所以需要你将执行时间加长点,如 set_time_limit(300) ,其中将秒数设为0 ,表示持续运行! 如:set_time_limit(0)表示长时间链接运行! 注意:这个函数的运行需要你关闭安全模式,在php.ini中将safe_mode = Off 安全模式设置为Off,否则将会出现下面错误: Warning: set_time_limit() [function.set-time-limit]: Cannot set time limit in safe mode in 再次注意的是: 在php.ini可以通过定义max_execution_time来设置PHP页面的最大执行时间,比如下面: set_time_limit(900); 这个函数指定了当前所在php脚本的最大执行时间, 虽然设定值是900秒,实际上 最大执行时间=php.ini里的max_execution_time数值 - 当前脚本已经执行的时间 + 设定值 假如php.ini里的max_execution_time=30,当前脚本已经执行10秒,则: 最大执行时间=30-10+900=920秒。 * *//************mysqli连接的超时问题*************///创建对象$mysqli = mysqli_init();//设置超时选项//Connect failed: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 1);//连接$mysqli->real_connect('localhost', '用户名', '密码', 'test');//如果超时或者其他连接失败打印错误信息if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}//成功输出连接信息printf ("Connection: %s\n.", $mysqli->host_info);$mysqli->close();/************socket请求的超时问题*************///..........$fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout); //连接的时候指定连接超时//..............stream_set_blocking($fp, $block);stream_set_timeout($fp, $timeout); //PHP函数stream_set_timeout(Stream Functions)作用于读取流时的时间控制@fwrite($fp, $out);$status = stream_get_meta_data($fp);if(!$status['timed_out']) { //................. }/************curl的超时问题*************/curl_setopt($ch,CURLOPT_TIMEOUT,60);//只需要设置一个秒的数量就可以//curl_setopt($ch,CURLOPT_NOSIGNAL,1);//注意,毫秒超时一定要设置这个//curl_setopt($ch,CURLOPT_TIMEOUT_MS,200);//超时毫秒,cURL7.16.2中被加入。从PHP5.2.3起可使用//file_get_contents超时$timeout=array( 'http'=>array( 'timeout'=>5//设置一个超时时间,单位为秒 ));$ctx=stream_context_create($timeout);$text=file_get_contents("http://example.com/",0,$ctx);/************fopen的超时问题*************/$timeout=array( 'http'=>array( 'timeout'=>5//设置一个超时时间,单位为秒 ));$ctx=stream_context_create($timeout);if($fp=fopen("http://example.com/","r",false,$ctx)){ while($c=fread($fp,8192)){ echo$c; } fclose($fp);}/************其他待研究,文章在个人收藏中*************/
0 0
- php超时问题的研究
- PHP Session 超时的问题
- HttpWebRequest的偶尔请求超时问题研究
- php路径问题的研究!
- 解决PHP超时问题
- php-fpm超时问题
- PHP 中file_get_contents 超时问题
- PHP连接ORACLE超时问题
- 解决PHP中fopen容易超时的问题
- IIS6的超时问题
- SquirrelMail超时的问题
- poplib的超时问题
- 数据库连接超时的问题
- Ngnix的超时问题
- php超时的处理方法
- php的curl超时参数
- Drupal安装过程执行php超时问题
- PHP调用session_start后页面始终加载的问题研究
- DanmuPlayer的数据库相关
- Mongodb学习技术网站地址一览
- 并发与并行
- java/android 设计模式学习笔记(6)---适配器模式
- 麦座系统开发入门指南
- php超时问题的研究
- Android ListView优化
- 复数运算符重载
- 亚马逊Echo将引领新的交互潮流?
- boostrap的左右箭头指示器
- ant配置文件的基本格式
- Word中如何解决英文大小写的问题
- Linux系统Shell编程基础知识储备
- Python进阶之函数式编程