Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/12/2013, 12:43
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
[APORTE] Script para descargar tipografias (u otros archivos) masivamente

Hola gente, arme este simple script para leecheame todas las tipografias de la web que ya que hacerlo a mano me da sueño.

Funciona para cualquier otro fin por supuesto, no solo para tipografias pero de momento solo lo uso para eso.

Código PHP:
Ver original
  1. <?php  
  2.     // Un tiempo alto ya que se ban a bajar muchas.
  3.     ini_set('max_execution_time', 300);
  4.     // Una url determinada obligatoria.
  5.     $prefijo = '';
  6.     // Formato en que estan las tipografias.
  7.     $formato = '.zip';
  8.     // Url de la primer pagina indicando donde va el numero de pagina.
  9.     $url = 'http://www.1001freefonts.com/new-fonts-[PAGINA].php';
  10.     // Si se quiere que se muestren todos los link. (Para usar un gestor externo por ejemplo)
  11.     $mostrar_link = true;
  12.     // Si quiere que se descargen las fuentes.
  13.     $download = true;
  14.     // Si los archivos son zip, y hay que descomprimirlos (VER $FORMATO, $DOWNLOAD)
  15.     $unzip = true;
  16.     // Nro de paginas a descargar.
  17.     $paginas = 100;
  18.    
  19.     $paginas++;
  20.     for($etapa = 1; $etapa<$paginas;$etapa++)
  21.     {
  22.         $input = @file_get_contents(str_replace('[PAGINA]', $etapa,$url))
  23.             or die('No se pudo abrir la url.');
  24.         if(preg_match_all('#\bhttps?://'.$prefijo.'[^\s()<>]+'.$formato.'#', $input, $matches, PREG_SET_ORDER)) {
  25.             $arr_tmp = array();
  26.             foreach($matches as $match)
  27.                 $arr_tmp[] = rtrim($match[0], ' \t."');
  28.             unset($matches);
  29.             $arr_tmp = array_unique($arr_tmp);
  30.             foreach($arr_tmp as $font)
  31.             {
  32.                 if($mostrar_link)
  33.                     echo('<a href="'.$font.'">'.$font.'</a><br>');
  34.                 if($download)
  35.                 {
  36.                     $archivo = file_get_contents($font);
  37.                     $nombre = explode('/',$font);
  38.                     $nombre = $nombre[count($nombre)-1];
  39.                     file_put_contents('fonts/'.$nombre, $archivo);
  40.                     if($unzip)
  41.                     {
  42.                         $zip = new ZipArchive;
  43.                         $zip->open('fonts/'.$nombre);
  44.                         $zip->extractTo('fonts/');
  45.                         $zip->close();
  46.                         unlink('fonts/'.$nombre);
  47.                     }              
  48.                 }
  49.             }
  50.         }
  51.     }

feliz año nuevo!
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios