如何在php中为请求超时计时进程

如何在php中为请求超时计时进程,php,Php,我的PHP代码超时,出现以下错误: 此请求处理时间太长,服务器已超时。如果不应超时,请联系此网站的管理员以增加“连接超时” 我不知道为什么会这样。这是我的代码: if(!in_array($name,$names)){ mysql_query("INSERT INTO `tbl` (`name`, `time`, `link`) VALUES ( '$name', '$time', '$link');"); } else { mysql_query("UPDATE `tbl` S

我的PHP代码超时,出现以下错误:

此请求处理时间太长,服务器已超时。如果不应超时,请联系此网站的管理员以增加“连接超时”

我不知道为什么会这样。这是我的代码:

if(!in_array($name,$names)){
    mysql_query("INSERT INTO `tbl` (`name`, `time`, `link`) VALUES ( '$name', '$time', '$link');");
} else {
    mysql_query("UPDATE `tbl` SET `time` = '$time', `link` = '$link' WHERE `pishkhan`.`name` = $name;");
    echo $name.'<br/>'; 
}
file_put_contents('test/albums/news/'.$name.".jpg", fopen($link, 'r'));
if(!in_数组($name,$names)){
mysql_查询(“插入到'tbl'('name','time','link')值('$name','$time','$link');”;
}否则{
mysql_查询(“更新`tbl`SET`time`='$time',`link`='$link',其中`pishkhan`.`name`=$name;”;
回显$name。“
”; } 文件内容('test/albums/news/'.$name..jpg',fopen($link,'r');
您可以设置为大于默认值30秒的值。但是从你的代码来看,我不明白为什么它必须超时。可能是一些配置问题?比如说mysql的连接时间太长了


另外,不要使用不推荐的
mysql.*
函数。使用
mysqli.*
或PDO。

听起来您的主机限制了执行时间。在运行循环之前,也许可以考虑设置时间限制

正如我在中所述,这个特定的错误消息是由LiteSpeed web服务器(Apache的更快替代品)生成的。它有一个特殊功能,可以取消长时间运行的脚本(甚至是那些使用
设置时间限制()
)的脚本)。要禁用此功能,您需要将以下内容放入站点根目录下的
.htaccess
文件中

RewriteEngine On
RewriteRule .* - [E=noabort:1]
RewriteRule .* - [E=noconntimeout:1]

请明确说明您想要实现的目标以及当前正在发生的事情!?当我为132运行此页面时,进程返回以下错误:此请求处理时间过长,服务器超时。如果不应超时,请联系此网站的管理员以增加“连接超时”。谢谢,但设置时间限制对我不起作用,我能做什么?@user3415984您将其设置为什么值?我设置了时间限制(0)或时间限制(20),但不起作用:(@user3415984如果将其设置为0没有帮助,您需要等待30秒才能获得超时,请与您的服务器管理员联系。除了设置时间限制外,还有其他方法吗?您可以使用
time()
在请求开始时获取时间戳。然后在循环过程中,检查当前
time()
如果差异是,比如说,
>10s
,那么您可以发出重定向以使页面重新加载(类似于:
标题('Location:script.php?last=10');
),然后使用$\u GET['last']确定您在数组中的位置(可能使用数组拼接?)。如果您将超时设置得足够小,您也可以使用某种进度条登录到屏幕?