- Автор темы
- #1
есть скрипт для многопоточной скачки страниц
нужно сохранить результат работы в текстовый файл
каждый результат содержится в $tasks[$url]
пробовал после него функцию записи в файл, но возникла проблема с именем файла
PHP:
for ($i = 1; $i < 10; $i++) {
$urls[$i] = "http://ru.wikipedia.org/wiki/$i";
}
$cmh = curl_multi_init();
$tasks = array();
foreach ($urls as $url) {
$ch = curl_init('http://'.$url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$tasks[$url] = $ch;
curl_multi_add_handle($cmh, $ch);
}
$active = null;
do {
$mrc = curl_multi_exec($cmh, $active);
}
while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active && ($mrc == CURLM_OK)) {
if (curl_multi_select($cmh) != -1) {
do {
$mrc = curl_multi_exec($cmh, $active);
$info = curl_multi_info_read($cmh);
if ($info['msg'] == CURLMSG_DONE) {
$ch = $info['handle'];
$url = array_search($ch, $tasks);
$tasks[$url] = curl_multi_getcontent($ch);
curl_multi_remove_handle($cmh, $ch);
curl_close($ch);
}
}
while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
curl_multi_close($cmh);
нужно сохранить результат работы в текстовый файл
каждый результат содержится в $tasks[$url]
пробовал после него функцию записи в файл, но возникла проблема с именем файла