0

我想与我的客户建立推送连接。如果文件包含单词 true,则应通知它。这适用于以下脚本,但我总是在 50 秒后收到错误消息。您会在下面看到此错误。

我该如何解决这个错误?

<?php
    set_time_limit(3600);
    $content ="";
    while($content!="true"){
        sleep(1);
        $content = file_get_contents("test.txt");
    }
    echo "now";

?>

´ 这里是浏览器 50 秒后的结果。

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, sh@lorchs.de and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

我的阿帕奇配置:

#
# Timeout: The number of seconds before receives and sends time out.
#
Timeout 3600

#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive On

#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 0

#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 5
4

4 回答 4

0

文件获取内容返回 1 个字符串中的所有内容。我认为您想要做的是遍历这些行并搜索是否在该行中找到“true”,找到 true 的位置然后返回之前的所有内容?

于 2013-04-11T09:40:48.677 回答
0

请不要file_get_contents()返回整个文件的字符串

只要 $content 不等于字符串“true”,while 循环就会迭代。如果您有一个仅返回内容“true”的文件,那么它将退出循环,否则不会。

我猜你正在尝试做这样的事情:

<?php
    $content ="";
    while(!strstr($content,"true")) {
        sleep(1);
        $content = file_get_contents("test.txt");
    }
    echo "now";

?>

除了创建一个不必要的循环来检查文件中的字符串之外,该代码实际上并没有做任何事情。

于 2013-04-11T09:31:44.630 回答
0

在 php.ini 中增加 max_execution_time 的值 & 在 Apache 上有一个设置 max_input_time 定义了他们将等待发布数据的时间,无论大小。如果这个时间用完,连接就会关闭,甚至不接触 php.ini。

于 2013-04-11T09:32:44.980 回答
0

max_execution_time在你的 php.ini 中搜索

于 2013-04-11T09:24:55.490 回答