PHP CURL сохранение нескольких ссылок URL-адреса XML? - PullRequest
0 голосов
/ 21 июня 2010

Я пытаюсь сохранить 3 ссылки XML-URL, чтобы записать их в локальную копию кэша XML. Но 2 из URL-ссылок XML с параметрами, переданными после? не экономят вообще?

только файл allteams.xml сохраняется в папке с несколькими кешами, в то время как другие 2 URL не сохраняются?

должен быть лучший способ сделать это?

<?php

$urls=array(
'http://remotedomain.com/api/team.xml?id=12',
'http://remotedomain.com/api/allteams.xml',
'http://remotedomain.com/api/allmembers.xml?limit=1000&id=12');

$save_to='multicache/';

$mh = curl_multi_init();
foreach ($urls as $i => $url) {
    $g=$save_to.basename($url);
    if(!is_file($g)){
        $conn[$i]=curl_init($url);
        $fp[$i]=fopen ($g, "w");
        curl_setopt ($conn[$i], CURLOPT_FILE, $fp[$i]);
        curl_setopt ($conn[$i], CURLOPT_HEADER ,0);
        curl_setopt($conn[$i],CURLOPT_CONNECTTIMEOUT,60);
        curl_multi_add_handle ($mh,$conn[$i]);
    }
}
do {
    $n=curl_multi_exec($mh,$active);
}
while ($active);
foreach ($urls as $i => $url) {
    curl_multi_remove_handle($mh,$conn[$i]);
    curl_close($conn[$i]);
    fclose ($fp[$i]);
}
curl_multi_close($mh);
?>

спасибо

1 Ответ

0 голосов
/ 21 июня 2010

Хм, а как насчет какого-нибудь высокотехнологичного решения:

foreach ($urls as $url)
{   
    copy($url, $save_to . basename($url));
}

Без скручивания, только некоторые основные потоки PHP.

Я не уверен насчет этого is_file() бизнеса, если вы хотите проверить, что файл не существует, используйте file_exists().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...