这段时间在研究“QQ农场”和“美图秀秀”的Flash版工作原理,需要下载一些资源文件,若手动下载那上千个文件,可想而知是多么庞大的工作量。为了偷懒,写了一个小程序(CMD+PHP)实现批量下载。

下面分别给出CMD代码和PHP代码,至于所需的php.exe和wget.exe文件,请自行百度搜索下载。

parse.cmd

@echo off
rem xml-url-downloader
rem create by anrip.wong<mail@anrip.com>
cd /d %~dp0
echo. && echo 正在清理DAT目录...
if exist .\dat\ rd /s /q .\dat\
echo. && echo 正在分析XML文件...
.\bin\php.exe -n -q -f parse.php
echo. && echo 开始下载URL文件...
call .\dat\wget.bat
echo. && echo 操作完毕,按任意键退出...
pause >nul

parse.php

<?php
//xml-url-downloader
//create by anrip.wong<mail@anrip.com>
get_xml_url('xml/', 'dat/');
//获取XML内的URL,并生成BAT脚本
function get_xml_url($dir, $out) {
  $xml = glob($dir.'*.xml');
  $bat = "echo. && .\bin\wget.exe -xnv -P {$out}";
  is_dir($out) || mkdir($out, 0777, true);
  if(!empty($xml) && is_array($xml)) {
    foreach($xml as $xm) {
      preg_match_all('/url="(.*)"/U', file_get_contents($xm), $match);
      if(!empty($match[1])) {
        foreach($match[1] as $url) {
          $txt .= "{$bat} {$url} \r\n";
        }
      }
    }
    file_put_contents($out.'wget.bat', $txt);
  }
}
?>

标签: dos, php, windows

添加新评论