сценарий
<?php
include('time.php'); //time script
echo "First 100 users of SO<br/>";
for($i=0; $i<100;$i++){
$contents=file_get_contents("https://stackoverflow.com/privileges/user/".$i);
preg_match('!<div class="summarycount al">(.+?)</div>!', $contents, $matches);
$rep = $matches[1];
echo "<br/>".$i.") ".$rep."<br/>";
include('timetaken.php'); //script which outputs time difference
}
?>
выход
First 100 users of SO
0) 0
2.3584280014038
1) 14,436
4.469074010849
2) 875
10.651238918304
3) 2,431
12.991086959839
4) 8,611
15.451638936996
5) 14,988
17.535580873489
6) 0
19.686461925507
7) 0
21.796992063522
8) 218
23.931365013123
9) 2,569
26.419286966324
10) 101
28.540382862091
11) 232
30.755586862564
12) 0
32.960548877716
13) 33,898
35.163224935532
14) 0
37.280658006668
15) 6,388
39.425274848938
16) 143
41.541421890259
17) 14,366
43.655340909958
18) 0
45.771246910095
19) 99
47.882269859314
20) 4,204
49.993322849274
21) 0
52.108762979507
22) 1,517
54.221307039261
23) 411
56.345490932465
24) 103
58.892389059067
Fatal error: Maximum execution time of 60 seconds exceeded in C:\test.php on line 5
Проблемы с этим скриптом:
1. Страница загружается через 60 секунд после истечения времени ожидания
Я знаю, что могу добавить
set_time_limit(500);
к коду и получить первые 100 репутаций, но это приведет к загрузке страницы, скажем, через 120 секунд.
Как получить результат короткими пакетами, так как данные собираются с использованием PHP или любого другого языка (python, java) или чего-либо еще.
Прежде чем кто-то это скажет, я прочитал Лучший способ управления долгоиграющим PHP-скриптом? , который может быть возможной копией, но не отвечает на мой вопрос. Мой вопрос не завершает всю работу, но отображает результаты, как это делается.
(Пожалуйста, разберитесь с тегами для меня)