1

我目前正在构建一个网络爬虫,但首先我想在我的共享虚拟主机上对其进行测试,显然他们不允许set_time_limit,所以我无法确保脚本持续运行超过 30 秒。

下次超时时启动 PHP 脚本的最佳方式是什么?我正在考虑将最后抓取的 URL 保存在文件中,但还有其他选择吗?

4

1 回答 1

1

编辑: 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
    }

    // ...

?>

旧(不正确)方法:

您当然可以使用gotohttp ://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

    // ...

?>
于 2013-05-18T18:19:59.537 回答