2017-02-01 11 views
2

Я пытаюсь создать монитор с помощью cURL, чтобы отслеживать различные панели инструментов. Идея состоит в том, что я загружаю кучу URL-адресов, которые я хочу видеть из базы данных, и после запуска этого кода в окне браузера мне показывают эти URL-адреса в течение ограниченного времени (например, я показываю www.dashboard .zopim.com в течение 10 секунд, затем он переходит на другой URL-адрес в течение 30 секунд и т. д., и когда он заканчивается, он начинается снова).Отображение нескольких страниц с помощью cURL/PHP

<?php 

include_once('connection.php'); 

$query = "SELECT url, time FROM $tb ORDER BY position"; 
$result = mysqli_query($connection_, $query); 

$rowcount = mysqli_num_rows($result); 

$curl_handle = curl_init(); 
$data = array(); 

//base array building 
while ($row = mysqli_fetch_array($result, MYSQLI_NUM)) { 
    $data_b = array(); 
    $data_b['curl_handle'] = $curl_handle; 
    $data_b['url'] = $row[0]; 
    $data_b['time'] = $row[1]; 
    array_push($data, $data_b); 
} 

for ($i=0; $i < $rowcount; $i++) { 
    $ch = $data[$i]['curl_handle']; 
    curl_setopt($ch, CURLOPT_URL, $data[$i]['url']); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
    //curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); 
    curl_setopt($ch, CURLOPT_FRESH_CONNECT, true); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 1); 

    $grab = curl_exec($ch); 
    usleep($data[$i]['time']*100); 
    curl_close($ch); 
    return $grab; 
} 
?> 

Проблема в том, что я даже не могу запустить ее. Как сейчас, он просто загружает первую страницу и остается там.

Также, как комментарий, поскольку я совершенно незнакомый cURL в целом, есть ли лучший способ сделать это? Я читал, что есть многофункция, которая позволяет мне загружать несколько URL-адресов асинхронно, но я не уверен, что это послужит мне тем, что я хочу.

+0

Я думаю, что большая часть этого придется полагаться на JS. – Kaylined

+0

Мне не разрешено вмешиваться непосредственно в серверы или что-то в этом роде, поэтому оно должно ограничиваться самим кодом. Хотите поделиться предложением? – lower

+0

Я думаю, что ваш лучший вариант здесь - нажать все URL-адреса сразу на ваш JS и настроить IFRAME для отображения сайта, а JS обновить