我想使用php函数file_get_contents
在屏幕上列出10.000页来获取数据库的信息。
直到第500页左右,然后脚本停止运行(页面已加载)并且没有显示错误。
<?php
for ($nr=1; $nr<=10000; $nr++){
$url = "http://site.com/u$nr";
$string = file_get_contents($url);
echo '<textarea>'.$string.'</textarea>';
}
?>
@edit
我想通过Javascript来操作我的计算机的这些信息,我认为使用PHP操作HTML会带来很多工作。 在db中记录这些页面是个好主意。
答案 0 :(得分:2)
我建议在循环中设置你的time_limit 。设置时间限制将在给定的时间内“延长”超时;
<?php
for ($nr=1; $nr<=10000; $nr++){
$url = "http://site.com/u$nr";
$string = file_get_contents($url);
echo '<textarea>'.$string.'</textarea>';
// extend the time-limit with this amount of time,
// the amount of time this request is allowed to take
set_time_limit(5);
}
?>
这样您就不必计算10.000条记录的“总计”时间限制,并且不允许单个请求(例如)1小时完成
<强> [更新] 强> OP发布的新信息表明他希望使用javascript处理输入。因此,更好的解决方案是使用jQuery一次获取所有页面1,处理信息并将结果提交到数据库,使用Ajax帖子并将服务器端保存到数据库
答案 1 :(得分:1)
检查错误日志。您的脚本可能已超时(默认值为30秒)。尝试使用http://php.net/manual/en/function.set-time-limit.php
设置更长的超时 set_time_limit(120); // Script may run for 120 seconds before timing out
答案 2 :(得分:0)
答案 3 :(得分:0)
你可能用完了内存/执行时间。
您需要检查phpinfo()
并检查相应的设置(memory_limit
应高于256M
,max_execution_time
也应超过30分钟,如果您打算使用您的服务器进行此类操作。)
此外,请确保记录错误,然后显示它们(在开发环境中)(display_errors = 1
,error_reporting(E_ALL)
,log_errors = 1
)。
抓取10000页是一个耗费资源的过程,您可能需要考虑在数据库中存储一些信息。
编辑:正如我前面的人所说,set_time_limit()
是max_execution_time
的'每个脚本'选项,如果您不想永久更改服务器执行时间,请使用它。