msgutil.java
来自「cwbbs 云网论坛源码」· Java 代码 · 共 164 行
JAVA
164 行
package com.redmoon.forum;import cn.js.fan.util.StrUtil;import java.util.Vector;import org.htmlparser.Node;import org.htmlparser.util.ParserException;import org.htmlparser.nodes.TextNode;import org.htmlparser.filters.OrFilter;import org.htmlparser.NodeFilter;import org.htmlparser.tags.ImageTag;import org.htmlparser.Parser;import org.htmlparser.util.NodeList;import org.htmlparser.filters.NodeClassFilter;import org.htmlparser.tags.LinkTag;import javax.servlet.http.HttpServletRequest;import cn.js.fan.web.SkinUtil;import com.cloudwebsoft.framework.util.LogUtil;public class MsgUtil { public static final int MAX_LEN2 = 3000; public MsgUtil() { } public static boolean isTrimEmpty(String astr) { if ((null == astr) || (astr.length() == 0)) { return true; } if (isBlank(astr.trim())) { return true; } return false; } public static boolean isBlank(String astr) { if ((null == astr) || (astr.length() == 0)) { return true; } else { return false; } } public static String getAbstract(HttpServletRequest request, MsgDb md, int len) { String content = md.getContent(); content = StrUtil.getLeft(content, len); int idx1 = content.lastIndexOf('<'); int idx2 = content.lastIndexOf('>'); if ((idx2 == -1 && idx1 >= 0) || (idx1 > idx2)) { String ct3 = md.getContent(); int idx3 = ct3.indexOf('>', idx1); if (idx3!=-1) { if (idx3 < MAX_LEN2) { content = ct3.substring(0, idx3 + 1); } } } idx2 = content.toLowerCase().lastIndexOf("</object>"); idx1 = content.toLowerCase().lastIndexOf("<object"); if ((idx2 == -1 && idx1 >= 0) || idx1 > idx2) { String ct2 = md.getContent().toLowerCase(); int idx3 = ct2.indexOf("</object>"); if (idx3 != -1) content += md.getContent().substring(content.length(), content.length() + idx3 + 9); else content = md.getContent().substring(0, idx1); } String str = ""; try { Parser myParser; NodeList nodeList = null; myParser = Parser.createParser(content, "utf-8"); NodeFilter textFilter = new NodeClassFilter(TextNode.class); NodeFilter linkFilter = new NodeClassFilter(LinkTag.class); NodeFilter imgFilter = new NodeClassFilter(ImageTag.class); OrFilter lastFilter = new OrFilter(); lastFilter.setPredicates(new NodeFilter[] {textFilter, linkFilter, imgFilter}); nodeList = myParser.parse(lastFilter); Node[] nodes = nodeList.toNodeArray(); for (int i = 0; i < nodes.length; i++) { Node anode = (Node) nodes[i]; String line = ""; if (anode instanceof TextNode) { TextNode textnode = (TextNode) anode; line = textnode.getText(); } else if (anode instanceof ImageTag) { ImageTag imagenode = (ImageTag) anode; String url = imagenode.getImageURL(); String ext = StrUtil.getFileExt(url).toLowerCase(); if (ext.equals("gif") || ext.equals("png") || ext.equals("jpg") || ext.equals("jpeg") || ext.equals("bmp")) { if (imagenode.getImageURL().startsWith("http")) ; else if (imagenode.getImageURL().startsWith("/")) { ; } else { url = request.getContextPath() + "/forum/" + imagenode.getImageURL(); } line = "<div align=center><a onfocus=this.blur() href=\"" + url + "\" target=_blank><IMG SRC=\"" + url + "\" border=0 alt=" + SkinUtil.LoadString(request, "res.cn.js.fan.util.StrUtil", "click_open_win") + " onload=\"javascript:if(this.width>screen.width-333) this.width=screen.width-333\"></a></div><BR>"; } } if (isTrimEmpty(line)) continue; str += "<p>" + line + "</p>"; } } catch (ParserException e) { LogUtil.getLog(MsgUtil.class.getName()).error("getAbstract:" + e.getMessage()); } return str; } public static String getIcon(String fileName) { String ext = StrUtil.getFileExt(fileName).toLowerCase(); if (ext.equals("jpeg")) ext = "jpg"; else if (ext.equals("ini")) ext = "txt"; String[] icons = {"gif", "rar", "zip", "txt", "png", "bmp", "jpg", "doc", "xls", "mp3", "swf", "wma"}; int len = icons.length; for (int i=0; i<len; i++) { if (ext.equals(icons[i])) { return ext + ".gif"; } } return ""; } public static String getIconImg(MsgDb md) { Vector v = md.getAttachments(); if (v.size()>0) { Attachment att = (Attachment)v.get(0); String imgicon = getIcon(att.getDiskName()); return imgicon; } return ""; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?