PHP启动脚本超时


PHP Start script where it timed out

我目前正在构建一个网络爬虫,但要开始我想测试它在我的共享网站托管,显然他们不允许set_time_limit,所以我不能确保脚本保持运行超过30秒。

下次PHP脚本超时时,启动它的最好方法是什么?我正在考虑保存最后一个抓取的URL在一个文件中,但有没有其他选择?

编辑: ScallioXTX是对的,你不能使用变量作为goto标签。你可以用一个非常大的if声明来解决这个问题,但是在这一点上,我想说最好不要使用goto。下面是另一种方法:

<?php
    // Load label number from database or text file into $label_num
    if($label_num <= 1) {
        // Do stuff
    }
    if($label_num <= 2) {
        // Do more stuff
    }
    // ...
?>

旧的(错误的)方法:

你当然可以使用goto: http://us1.php.net/goto

我只会把它作为一个临时措施,直到你得到更好的托管。

我会这样做:

  1. 在代码中的不同位置,写一个标签(例如count1:, count2:等)
  2. 在您添加标签的每个位置,将该标签名称写入数据库或文本文件
  3. 在脚本开头,加载该值并跳转到指定的标签

的例子:

<?php
    // Load label number from database or text file into $label_num
    if($label_num) {
        goto $label_num;
    }
    count1:
    // Do stuff
    count2:
    // Do more stuff
    // ...
?>