有没有办法使函数超时?我有10分钟的时间来完成工作。该作业包括一个for循环,这是一个示例:
<?php
foreach($arr as $key => $value){
some_function($key, $value); //This function does SSH and SFTP stuff
}
?>
$ arr有15个元素,some_function()有时可能需要1分钟以上。实际上,一旦它挂了5分钟。
有没有一种方法可以使函数调用超时并继续处理$ arr中的下一个元素?
谢谢!!
这取决于您的实现。PHP中有99%的功能处于阻塞状态。意思是直到当前功能完成,处理才继续。但是,如果函数包含循环,则可以在满足特定条件后添加自己的代码来中断循环。
像这样:
foreach ($array as $value) {
perform_task($value);
}
function perform_task($value) {
$start_time = time();
while(true) {
if ((time() - $start_time) > 300) {
return false; // timeout, function took longer than 300 seconds
}
// Other processing
}
}
无法中断处理的另一个示例:
foreach ($array as $value) {
perform_task($value);
}
function perform_task($value) {
// preg_replace is a blocking function
// There's no way to break out of it after a certain amount of time.
return preg_replace('/pattern/', 'replace', $value);
}
本文向大家介绍PHP函数超时处理方法,包括了PHP函数超时处理方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP函数超时处理方法。分享给大家供大家参考,具体如下: register_shutdown_function Registers the function named by function to be executed when script processing is c
本文向大家介绍PHP中的zip_entry_compressed_size()函数,包括了PHP中的zip_entry_compressed_size()函数的使用技巧和注意事项,需要的朋友参考一下 zip_entry_compressed_size()函数返回zip归档条目的压缩文件大小。 语法 参数 zip_entry-邮政编码条目资源。需要。 返回 zip_entry_compressed_
问题内容: 是否有一个PHP函数以与MySQL函数相同的格式返回日期和时间? 我知道如何使用来做,但是我在问是否只有一个功能。 例如,返回: 问题答案: 除了日期功能:
本文向大家介绍PHP中的hebrevc()函数,包括了PHP中的hebrevc()函数的使用技巧和注意事项,需要的朋友参考一下 该函数用于通过换行转换将逻辑希伯来语文本转换为可视文本。还将新行(\ n)转换为<br>。 语法 参数 str-希伯来语输入字符串 maxcharline-每行将返回的最大字符数。 返回 该函数返回可视字符串。 以下是一个例子- 示例 以下是输出- 输出结果
本文向大家介绍PHP中的array_fill_keys()函数,包括了PHP中的array_fill_keys()函数的使用技巧和注意事项,需要的朋友参考一下 array_fill_keys()函数用指定键的值填充数组。它返回填充的数组。 语法 参数 keys-用作键的值的数组。 值-这将被用来填充值。 返回 array_fill_keys()函数返回已填充的数组。 示例 输出结果 让我们来看另一
本文向大家介绍PHP中的array_fill()函数,包括了PHP中的array_fill()函数的使用技巧和注意事项,需要的朋友参考一下 array_fill()函数用于用值填充数组。它返回填充的数组。它返回填充的数组。 语法 参数 start_index-返回的数组的第一个索引。需要。 num-要插入的元素数。需要。 value-将填充数组的值。需要。 返回 array_fill()函数返回已