voici un petit script php pour aller cehrcher tous les components sketchup sur le site http://www.objectivenetworks.net/uploads/xxx/
- xxx est un numéro itératif qui correspond à un répertoire contenant un component
- le script balaye les reépertoires, et si il existe, il cherche dans le répertoire un fichier .skp.zip et un .skp
- si il en trouve, il télécharge par défaut le .skp.zip (moins gros), sinon il prend le .skp
- une fois les script mis en place, il faut l'appelre de la sorte :
http://localhost/leechurl.php?start=702&nb=300
start = le numro de depart du reprtoire
nb = le nb de reprtoire a parcourir (le dernier sera 1002)
ATTENTION : c'est très long (env. 7mn pour 100 repertoires) et les 1000 premiers = 90 Mo
--> si vous ne le lancez pas en local (avec une ADSL pa exemple) vous allez avoir des pbs de TimeOut (uh script dure au maxi 5s chez free !)
---------------------------
les trucs à paramétrer :
$dest_base = le répertoire où vous allez copier les fichiers
set_time_limit(yyy) : yyy est le temps qui est alloué au script pour s'exécutr. (ici, 1200s = 20mn)
--------------------------------------
<?
// free
// $dest="$_SERVER["DOCUMENT_ROOT"]."/utils/sketchup/118.skp"";
// localhost
set_time_limit(1200) ;//tps d'execution en s
//------------------------------------------------------------------------------------------
function getMicroTime()
{
$microsecondes=microtime();
list($micro,$time)=explode(' ',$microsecondes);
return($micro+$time);
}
function display_array($array_to_display,$options='')
{
if(is_array($array_to_display))
{
$return="<table cellpadding='1' cellspacing='1'>";
$ligne = 0;
while(list($key,$value) = each($array_to_display))
{
$ligne++;
if($ligne % 2 == 0)
{$my_bg_color="#AAAAAA";}
else
{$my_bg_color="#EEEEEE";}
$return.="
<tr bgcolor='$my_bg_color'>
<td><font face='Verdana, Arial, Helvetica, sans-serif' color='#000000' size='1'><b>$key</b></font></td>
<td><font face='Verdana, Arial, Helvetica, sans-serif' color='#000000' size='1'>$value</font></td>
</tr>
";
}
$return .="</table><br>";
}
else
{$return="<font face='Verdana, Arial, Helvetica, sans-serif' color='$rouge' size='3'><b>$array_to_display</b> n'est pas un tableau</font><br>";}
if(ereg("nodisplay",$options,$regs))
{return $return;}
else
{echo $return;}
}
//---------------------------------------------------------------------------------------------------\\
$mt_start=getMicroTime();
$rep_base="http://www.objectivenetworks.net/uploads/";
$dest_base=$_SERVER["DOCUMENT_ROOT"]."/granite/utils/sketchup/";
echo "start = ".$_GET['start'];
echo " - nb = ".$_GET['nb'];
display_array($_GET);
for($i=$_GET['start'];$i<=($_GET['start']+$_GET['nb']);$i++)
{
$rep=$rep_base.$i."/";
if($fp=@fopen($rep,'r'))
{
echo "<br>\nok : <a href='$rep' target='_blank'>$i</a> ";
$zip=$skp=$file='';
while (!feof ($fp))
{
//display_array($regs);
$buffer=fgets($fp, 4096);
if(ereg("href=\"([^\.]+.skp.zip)\"",$buffer,$regs))
{$zip=$regs[1];}
$regs='';
if(ereg("href=\"([^\.]+.skp)\"",$buffer,$regs))
{$skp=$regs[1];}
}
fclose($fp);
if($zip)
{
echo"- $zip";
$file=$rep.$zip;
$dest=$dest_base.urldecode($zip);
}
elseif($skp)
{
echo"- $skp";
$file=$rep.$skp;
$dest=$dest_base.urldecode($skp);
}
if($file)
{
if(file_exists($dest))
{echo"- <b>existe déjà</b>";}
else
{
if (!copy($file, $dest))
{echo("- La copie du fichier $file vers $dest n'a pas réussi..." );}
else
{echo("- <b>OK</b>" );}
}
}
}
else
{echo "<br>\nNOK : <a href='$rep' target='_blank'>$i</a><br>";}
}
?>
<center>éxécuté en <? print(round(getMicroTime()-$mt_start,5)); ?> secondes</center>