首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 字典優化腳本:去除重複、統一格式的實用工具

     編輯:PHP 相關知識

前言

在滲透測試或安全審計過程中,字典文件的品質直接影響爆破效率。原始字典往往包含空行、重複條目、格式不統一(如有無前導斜槓)等問題。本文介紹一款 PHP 字典優化腳本,能自動完成去空行、去重、統一添加前導斜槓等預處理工作,輸出乾淨可用的字典文件。

核心功能解析

1. 讀取與清洗

腳本通過 file() 將字典逐行讀入陣列,隨後使用正則 preg_replace('/($\s*$)|(^\s*^)/m', '', $file) 移除所有空白行,確保後續處理只針對有效數據。

2. 統一前導斜槓

遍歷陣列時,對每行執行 trim("/$r"):先補上前導斜槓,再去除首尾空白字符。接著以 preg_replace('#^([/]*)#', '/', $array) 將多重斜槓折疊為單一斜槓,確保路徑格式一致。

3. 去重與輸出

利用 array_unique() 剔除重複行,array_values() 重建索引,最後以 join("\r\n", $new_array1) 寫入 new_file.txt。腳本會在當前目錄生成結果文件,並回顯完整路徑供直接使用。

完整代碼示例

<?php
error_reporting(0);
echo "\n請輸入要整理的字典路徑:\n";
$dic = trim(fgets(STDIN));

$file = file($dic);
$array = preg_replace('/($\s*$)|(^\s*^)/m', '', $file); // 消除空行

foreach ($array as $key => $r) {
    $array[$key] = trim("/$r"); // 添加斜槓並去除空白
}

$new_array = preg_replace('#^([/]*)#', '/', $array); // 多斜槓折疊為單斜槓
$new_array1 = array_values(array_unique($new_array)); // 去重並重建索引

if (file_put_contents('new_file.txt', join("\r\n", $new_array1))) {
    echo "------------------------------------------\r\n";
    echo "\n整理完畢!\r\n";
    echo "生成的字典文件為:\r\n";
    echo dirname(__FILE__) . DIRECTORY_SEPARATOR . "new_file.txt\r\n";
    echo "------------------------------------------\r\n";
} else {
    echo "------------------------------------------\r\n";
    echo "錯誤!\r\n";
    echo "找不到文件!請檢查是否存在該字典!\r\n";
    echo "------------------------------------------\r\n";
}
?>

使用建議

  • 運行前請確保 PHP CLI 環境可用(php -v 驗證)。
  • 輸入字典路徑時建議使用絕對路徑,避免相對路徑解析失敗。
  • 生成的 new_file.txt 可直接餵給 DirBuster、Dirsearch、ffuf 等目錄掃描工具。

總結

這支不足 50 行的腳本解決了字典預處理中最常見的三大痛點:空行干擾、格式不統一、重複條目膨脹字典體積。將其納入滲透測試前置流程,能顯著提升目錄爆破的速度與準確度。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved