PHP CURL保存多个XML url链接?
问题描述:
我试图保存3个XML URL链接写入它们的本地xml缓存副本。但有2个XML url链接参数后传递?根本没有储蓄?PHP CURL保存多个XML url链接?
只有allteams.xml被保存到multicache文件夹中,而其他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);
?>
感谢
答
嗯,怎么样的一些技术含量低的解决方案:
foreach ($urls as $url)
{
copy($url, $save_to . basename($url));
}
不卷曲,只是一些基本的PHP流。
我不确定is_file()
业务,如果您想检查文件是否存在,请使用file_exists()
。