`
bubble
  • 浏览: 149744 次
  • 性别: Icon_minigender_1
  • 来自: 辽宁
社区版块
存档分类
最新评论

可恶的“查询吧”源码,我要阉了你!

阅读更多

nnd,一直想在自己的网站上加这个“查询吧”,不过里面的超链接都是指向根目录“/”,恶心,在网上没找到好的代码替换工具,今天心情好自己写一个吧。

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class ReplaceUtil {

	private String[] dot;
	private File dir;

	private int di = 0;
	private int count = 1;

	public synchronized void done() {
		File[] fs = dir.listFiles();
		for (File f : fs) {
			if (f != null)
				if (f.isDirectory()) {
					dir = f;
					di = di + 1;
					done();
					di = di - 1;
				} else if (f.isFile()) {
					boolean isDot = false;
					String suf = f.getName().substring(
							f.getName().lastIndexOf("."));
					for (int i = 0; i < dot.length; i++) {
						if (suf.endsWith(dot[i]))
							isDot = true;
					}
					if (isDot) {
						try {
							System.out.println(count + "->操作文件[" + f.getPath()
									+ "]");
							replace(f, di);
							count++;
						} catch (IOException e) {
							System.out.println("操作文件[" + f.getPath() + "]时出错!");
							e.printStackTrace();
						}
					}
				}
		}
	}

	private void replace(File f, int di) throws IOException {
		StringBuffer sb = new StringBuffer();
		// read
		InputStream in = new FileInputStream(f);
		BufferedReader dr = new BufferedReader(new InputStreamReader(in));
		String line = dr.readLine();
		while (line != null) {
			// TODO:replace
			if (f.getName().endsWith("js")) {
				if (di == 0)
					line = line.replace("=\\\"\\/", "=\\\"");
				else if (di == 1)
					line = line.replace("=\\\"\\/", "=\\\"../");
				else if (di == 2)
					line = line.replace("=\\\"\\/", "=\\\"../../");
				else if (di == 3)
					line = line.replace("=\\\"\\/", "=\\\"../../../");
			} else if (f.getName().endsWith("css")) {
				if (di == 0)
					line = line.replaceAll("\\(/", "(");
				else if (di == 1)
					line = line.replaceAll("\\(/", "(../");
				else if (di == 2)
					line = line.replaceAll("\\(/", "(../../");
				else if (di == 3)
					line = line.replaceAll("\\(/", "(../../../");
			} else {
				if (di == 0)
					line = line.replaceAll("=\"/", "=\"");
				else if (di == 1)
					line = line.replaceAll("=\"/", "=\"../");
				else if (di == 2)
					line = line.replaceAll("=\"/", "=\"../../");
				else if (di == 3)
					line = line.replaceAll("=\"/", "=\"../../../");
			}
			sb.append(line + "\t\n");
			line = dr.readLine();
		}
		// write
		// String tfname=newFilePath(f.getAbsolutePath());//test
		BufferedWriter writer = new BufferedWriter(new FileWriter(f));
		writer.write(sb.toString());
		writer.flush();
	}

	/**
	 * use for testing
	 * @param path
	 * @return
	 */
	private String newFilePath(String path) {
		String sub = path.substring(0, path.lastIndexOf("."));
		String enb = path.substring(path.lastIndexOf("."));
		return sub + "_" + enb;
	}

	public String[] getDot() {
		return dot;
	}

	public void setDot(String[] dot) {
		this.dot = dot;
	}

	public File getDir() {
		return dir;
	}

	public void setDir(File dir) {
		this.dir = dir;
	}

	public static void main(String[] args) {
		String[] dot = { "htm", "html", "php", "js", "css" };
		File dir = new File("F:\\测试\\91tbnet");
		ReplaceUtil r = new ReplaceUtil();
		r.setDot(dot);
		r.setDir(dir);
		r.done();
	}
}
 
分享到:
评论

相关推荐

    查询吧源码,资源查询工具查询网站源码

    最新查询吧网站整站源码,查询工具源码。功能非常强大!包含生活、娱乐、财经、交通、站长工具、电脑、学习、计算机等等行业,功能简直太强大了,最新版经典收藏特别贡献。

    微信小程序源码、小游戏源码总的70个!

    小程序源码、小游戏源码下载地址: https://gitee.com/giteesource/app/blob/master/resource/1008.md 包含源码有: 1、游戏小程序:轻松愉快的休闲时光 2、商城小程序:便捷的在线购物体验 3、工具小程序:实用的...

    淘宝信誉查询网站源码

    淘宝信誉查询网站源码,非常好用!淘宝信誉查询网站源码

    ASP源码:网上报名系统源码,很实用的网上报名系统源码,可以直接使用!

    【ASP网上报名系统源码详解】 ASP(Active Server Pages)是一种由微软开发的服务器端脚本语言,常用于创建动态网页。在这个“网上报名系统源码”中,我们可以深入理解ASP在构建网络应用中的核心技术和实际应用。 ...

    C#工作流引擎源码(绝对好!!)

    本文将深入探讨C#工作流引擎的源码,以及如何利用这些源码进行学习和开发。 首先,我们需要理解工作流的基本概念。工作流是指一系列相互关联的任务,这些任务按照特定的顺序执行,以完成一个业务过程。在C#中,工作...

    SSCOM源码 DELPHI 源码

    SSCOM源码 DELPHI 源码 绝对源码!欢迎下载

    非常完善TCPIP协议栈源码,写的不错!包括一个ARM上的移植

    非常完善TCPIP协议栈源码,写的不错! 里面还有将这个TCPIP协议栈移植到ARM的例程 学习TCPIP协议建议好好看看

    仿直播吧源码 极品5+体育全站自动采集带聊天功能

    仿直播吧源码 极品5+体育全站自动采集带聊天功能 1、把文件上传到你的站点的根目录,然后运行 http://你的域名/install/index.php 安装,根据提示填写好相关信息,点“下一步”...即可完成安装。 注意:数据库前缀...

    快递查询工具 快递100源码

    快递100源码是金蝶旗下友商网开发的快递查询系统的源代码,它的核心功能是实现对全球各大快递公司的物流信息进行实时抓取、解析和展示,为电商平台、个人用户以及其他需要快递查询服务的企业或开发者提供了强大的...

    多功能在线报价系统源码

    【标题】:“多功能在线报价系统源码” 在线报价系统是一种基于网络的应用程序,它使得企业或个人能够方便快捷地提供产品或服务的价格信息给潜在客户。这个“多功能在线报价系统源码”是专为此目的设计的,允许用户...

    电商微信小程序源码+后台

    电商微信小程序源码+后台分享,亲测可用,有需要的朋友拿去!!! 电商微信小程序源码+后台分享,亲测可用,有需要的朋友拿去!!! 电商微信小程序源码+后台分享,亲测可用,有需要的朋友拿去!!! 电商微信小程序...

    易语言模块反编译源码(已解决BUG)

    而且发布了源码!!大家快来下载!!! (编译需要模块。) 模块下载地址: http://download.csdn.net/source/2635638 (想要编译,先下模块!!!↑↑↑↑下了模块再下载这个源码,就可以编译了!) (不会用的...

    2020易学八字算命测算源码(带教程)

    这个版本的源码很多是不完整的,但这份源码完整! 该源码为运营类源码,可放心使用! 简易教程: 环境:linux php5.5 mysql5.6 两个域名: 后台:http://xxx.com 指向根目录 前台:http://xxx1.com ...

    Minix3 源码解析(精华!)

    ### Minix3 源码解析(精华!) #### 标题解读 标题明确指出本文旨在解析 Minix3 的源代码,并强调了所选内容的精炼性与实用性。Minix 是一款历史悠久的操作系统,其设计哲学对于学习操作系统原理极具价值。通过...

    饿了么源码 百度外卖源码 美团外卖源码 外卖系统源码

    我们的每个系统作品都要经过周密的市场分析调查、可行性研究、项目策划,对我们来说项目的可行性高于一切! 功能专业、布局严谨 以项目方案为蓝本,以现有成功地方网站为局部参考,并充分结合地方性网站的特点与...

    仿58同城赶集网源码

    分类源码,信息发布网站源码,信息源码,信息港网站源码,asp信息港源码,信息类网站源码,多种分类源码,信息网源码下载,asp信息网源码,信息发布系统源码,物流信息源码,房产信息网源码.net源码,公安信息网源码,家教信息...

    spring-framework完整源代码(spring框架源码)

    以上数十子模块源码全部为完整源码!是j2ee学习者难得的优秀学习材料! 下载本资源请阅读以下注意事项: 本工程所需jar文件: 因为我(hexiang221)在csdn的上传权限仅为20M,而本工程源码+jar文件共28.4M, 所以我...

    分享 mud 文字游戏 源码

    为了进行二次开发,你需要具备一定的编程基础,理解源码使用的编程语言,并且对游戏开发有基本的认知。你可以根据需求修改现有的房间、物品、命令或者添加新的功能。例如,你可以扩展游戏世界,增加新的地图和剧情;...

    花旗游戏支付平台源码

    现在花旗,提供支付平台源码程序,打造一个你自己的传世支付平台,免费推荐俺一手的sp通道商。让你做平台无忧,免费提供技术支持 广大GM为什么要担这个风险呢,为什么不自己去买套属于自己的游戏支付平台程序呢 ,...

    移动医疗APP源码 android (安卓版)妙手医生源码

    源码中的`SQLiteOpenHelper`子类和相关DAO(数据访问对象)类会负责数据库的创建、更新和查询操作。 6. **权限管理**:Android 6.0引入了运行时权限管理,应用需要在运行时请求用户授权。源码中会有处理这些权限...

Global site tag (gtag.js) - Google Analytics