我目前正在构建一个网络爬虫,但要开始我想测试它在我的共享网站托管,显然他们不允许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
我只会把它作为一个临时措施,直到你得到更好的托管。
我会这样做:
- 在代码中的不同位置,写一个标签(例如
count1:
,count2:
等) - 在您添加标签的每个位置,将该标签名称写入数据库或文本文件
- 在脚本开头,加载该值并跳转到指定的标签
的例子:
<?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
// ...
?>