15,440
社区成员
发帖
与我相关
我的任务
分享
package org.phpe;
public interface PCRE {
public String preg_quote(String str);
public boolean preg_match(String pattern, String subject);
public boolean preg_match(String pattern, String subject, array matches);
public int preg_match_all(String pattern, String subject, array matches);
public String[] preg_split(String pattern, String subject, int limit);
public String[] preg_split(String pattern, String subject);
public String preg_replace(String pattern, String replacement, String subject);
public String preg_replace(array pattern, array replacement, String subject);
public String preg_replace_callback(String pattern, String callback, String subject);
public array preg_grep(String pattern, array input);
}
package org.phpe;
import java.util.regex.*;
import java.io.*;
import java.security.*;
abstract class php implements PCRE {
static final String DEFAULT_CHARCODE="ISO-8859-1";
protected String m_CharCode;
protected String m_BaseClass;
protected php() {
m_CharCode=DEFAULT_CHARCODE;
m_BaseClass=null;
}
public void SetCharCode(String charcode) {
m_CharCode=charcode.toString();
}
public void SetBaseClass(String baseclass) {
m_BaseClass=baseclass.toString();
}
public String file_get_contents(String filename, String charcode) {
try {
FileInputStream fp=new FileInputStream(filename);
int size=fp.available();
if (size>0) {
byte []binData=new byte[size];
fp.read(binData);
fp.close();
return new String(binData, charcode);
}
else
fp.close();
}
catch(Exception ex) {
return new String();
}
return new String();
}
public String file_get_contents(String filename) {
return file_get_contents(filename, m_CharCode);
}
public boolean file_put_contents(String filename, String buffer, String charcode) {
try {
FileOutputStream fp=new FileOutputStream(filename);
byte []binData=buffer.getBytes(charcode);
fp.write(binData);
fp.close();
return true;
}
catch(Exception ex) {
return false;
}
}
public boolean file_put_contents(String filename, String buffer) {
return file_put_contents(filename, buffer, m_CharCode);
}
public String[] file(String filename, String charcode) {
try {
String buffer=file_get_contents(filename, charcode);
if (buffer.length()>0) return buffer.split("\\r\\n|[\\r\\n]");
return new String[0];
}
catch(Exception ex) {
return new String[0];
}
}
public String[] file(String filename) {
return file(filename, m_CharCode);
}
public String urlencode(String str, String charcode) {
try {
return java.net.URLEncoder.encode(str, charcode);
}
catch(Exception ex) {
return str;
}
}
public String urlencode(String str) {
return urlencode(str, m_CharCode);
}
public String urldecode(String str, String charcode) {
try {
return java.net.URLDecoder.decode(str, charcode);
}
catch(Exception ex) {
return str;
}
}
public String urldecode(String str) {
return urldecode(str, m_CharCode);
}
public boolean is_file(String filename) {
try {
File fp=new File(filename);
return fp.isFile();
}
catch(Exception ex) {
return false;
}
}
public boolean is_dir(String filename) {
try {
File fp=new File(filename);
return fp.isDirectory();
}
catch(Exception ex) {
return false;
}
}
public boolean file_exists(String filename) {
try {
File fp=new File(filename);
return fp.exists();
}
catch(Exception ex) {
return false;
}
}
public boolean is_array(Object obj) {
try {
return obj.getClass().getName().equals("org.phpe.array");
}
catch(Exception ex) {
return false;
}
}
public boolean isset(String obj) {
try {
return !obj.equals("NULL");
}
catch(Exception ex) {
return false;
}
}
public boolean is_numeric(String obj) {
try {
new Double(obj);
return true;
}
catch(Exception ex) {
return false;
}
}
public int time() {
return (int)(System.currentTimeMillis()/1000);
}
public String implode(String glue, String []pieces) {
try {
StringBuffer buffer=new StringBuffer();
for (int i=0;i<pieces.length;i++) {
if (i>0) buffer.append(glue);
buffer.append(pieces[i]);
}
return buffer.toString();
}
catch(Exception ex) {
return new String();
}
}
public String implode(String glue, array pieces) {
return pieces.implode(glue);
}
public String[] explode(String glue, String str, int limit) {
try {
return str.split(glue.replaceAll("([\\$\\(-\\+\\.\\?\\[-\\^\\{-\\}])", "\\$1"), limit);
}
catch(Exception ex) {
return new String[0];
}
}
public String[] explode(String glue, String str) {
return explode(glue, str, -1);
}
private Pattern preg(String regExp) {
int rightDelimiter=regExp.lastIndexOf(regExp.charAt(0));
String pattern=regExp.substring(1, rightDelimiter);
int flags=0;
for (int i=regExp.length();i>rightDelimiter;) {
i--;
switch(regExp.charAt(i)) {
case 'i':
flags|=Pattern.CASE_INSENSITIVE;
break;
case 's':
flags|=Pattern.DOTALL;
break;
case 'm':
flags|=Pattern.MULTILINE;
break;
}
}
return Pattern.compile(pattern, flags);
}
public String preg_quote(String str) {
try {
return str.replaceAll("([\\$\\(-\\+\\.\\/\\?\\[-\\^\\{-\\}])", "\\$1");
}
catch(Exception ex) {
return str;
}
}
public boolean preg_match(String regExp, String subject) {
try {
return preg(regExp).matcher(subject).find();
}
catch(Exception ex) {
return false;
}
}
public boolean preg_match(String regExp, String subject, array matches) {
try {
Matcher m=preg(regExp).matcher(subject);
if (m.find()) {
int num=m.groupCount();
for (int i=0;i<=num;i++) {
matches.set(i, m.group(i));
}
return true;
}
return false;
}
catch(Exception ex) {
return false;
}
}
public int preg_match_all(String regExp, String subject, array matches) {
try {
int mnum;
Matcher m=preg(regExp).matcher(subject);
for (mnum=0;m.find();mnum++) {
int num=m.groupCount();
for (int i=0;i<=num;i++) {
matches.subArray(i).set(mnum, m.group(i));
}
}
return mnum;
}
catch(Exception ex) {
return 0;
}
}
public String[] preg_split(String regExp, String subject, int limit) {
try {
return preg(regExp).split(subject, limit);
}
catch(Exception ex) {
return new String[0];
}
}
public String[] preg_split(String regExp, String subject) {
return preg_split(regExp, subject, -1);
}
public String preg_replace(String regExp, String replacement, String subject) {
try {
return preg(regExp).matcher(subject).replaceAll(replacement);
}
catch(Exception ex) {
return subject;
}
}
public String preg_replace(array regExps, array replacements, String subject) {
try {
String buffer=new String(subject);
int num=regExps.count();
for (int i=0;i<num;i++) {
buffer=preg_replace((String)regExps.get(i), (String)replacements.get(i), buffer);
}
return buffer;
}
catch(Exception ex) {
return subject;
}
}
public String preg_replace_callback(String regExp, String callback, String subject) {
return subject;
}
public array preg_grep(String regExp, array inputs) {
return inputs;
}
public String htmlspecialchars(String str) {
array srcs=new array();
array objs=new array();
srcs.array_push("/&/s");objs.array_push("&");
srcs.array_push("/\"/s");objs.array_push(""");
srcs.array_push("/'/s");objs.array_push("'");
srcs.array_push("/</s");objs.array_push("<");
srcs.array_push("/>/s");objs.array_push(">");
return preg_replace(srcs, objs, str);
}
public String md5(String str) {
StringBuffer out=new StringBuffer();
try {
MessageDigest md=MessageDigest.getInstance("MD5");
md.update(str.getBytes(DEFAULT_CHARCODE));
byte[] b= md.digest();
for (int i=0;i<b.length;i++) {
out.append(Integer.toHexString((int)((b[i]>>4)&0x0F)));
out.append(Integer.toHexString((int)(b[i]&0x0F)));
}
}
catch(Exception ex) {
out=new StringBuffer();
for (int i=0;i<32;i++) {
out.append('x');
}
}
return out.toString();
}
public int _int(Object obj) {
try {
String str=(String)obj;
return Integer.valueOf(str).intValue();
}
catch(Exception ex) {
return 0;
}
}
public boolean _bool(Object obj) {
try {
String str=(String)obj;
if (str.length()==0||str.equals("0")||str.equalsIgnoreCase("FALSE")||str.equalsIgnoreCase("NULL")) return false;
return true;
}
catch(Exception ex) {
return false;
}
}
public String _string(Object obj) {
if (isset((String)obj)) return (String)obj;
return new String();
}
public String call_user_func(String name) {
return new String(name+"()");
}
abstract void setcookie(String name, String value);
abstract void setcookie(String name);
}