Gửi ACE
Hiện nay, Mình đang viết 1 phần mềm bằng php nhỏ, chạy trên XAMPP tại máy cá nhân. Mục đích là tải khoảng 4000 file json từ 1 trang web.
Hiện nay, mình sử dụng 3 vòng lặp for lồng nhau để tìm đến url của mỗi file json. các fle Json được phân bổ nằm trong các page, các page lại được phân bổ nằm trong các grade
Mình sử dụng 3 vòng lặp for lồng nhau để truy suất hết vào các grade => các page => các file JSON.
Hiện nay đang có vấn đề như sau. Khi mình kiểm tra thử với mẫu khoảng 100 file json thì vẫn ổn, nhưng khi sử dụng với trên 4000 file JSON thì có hiện tượng như sau:
- Khi chưa down hết các file trong grade 0 thì vòng lặp tự nhảy sang grade 1 để down tiếp, các file trong grade 0 vẫn được down tiếp tục, cái này mình không rõ là do apache của xampp chạy như thế hay do php có cơ chế nào khác mà server tự động nhảy sang vòng lặp kế khi chưa thực hiện hết code trong vòng lặp hiện tại.
- Các file mặc dù đã down xong vẫn có hiện tượng nhảy dung lượng về 0Kb.
Code như sau:
$page = curl($urlContent0 . "g=" . $list[0][1] . "&" . "f=0");
for ($i = 0; $i < 11; $i++) {
for ($j = 0; $page["count"] > 0; $j++) {
if (!file_exists($list[$i][0] . "/" . (string) $j)) {
mkdir($list[$i][0] . "/" . (string) $j);
}
for ($k = 0; $k < $page["count"]; $k++) {
$id = $page["hits"][$k]["_id"];
curl_dl($urlContent1 . $id, $list[$i][0] . "/" . (string) $j . "/" . $id);
}
$page = curl($urlContent0 . "g=" . $list[$i][1] . "&" . "f=" . ($j + 1));
}
if ($i < 1) {
$page = curl($urlContent0 . "g=" . $list[$i + 1][1] . "&" . "f=0");
}
}

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?