<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
 <channel>
  <title>hellophper.COM</title>
  <link>http://hellophper.com</link>
  
  <pubDate>Sun, 04 May 2008 04:05:31 GMT</pubDate>
  <language>zh-CN</language>
  <image>
   <link>http://hellophper.com</link>
   <url>http://hellophper.com/images/logo.png</url>
   <title>hellophper.COM</title>
  </image><item>
   <title>struts2 修改er表达式标签</title>
   <link>http://hellophper.com/htm/4/388.html</link>
	 
   <description>   lt;functiongt;           
       lt;descriptiongt;yymmddhhmmlt;/descriptiongt;     //描述最好与方法名相一致
       lt;namegt;yymmddhhmmlt;/namegt;    //最好与方法名相一致
       lt;function-classgt;com.copote.xmove4Frame.util.StrutsStrChangelt;/function-classgt; //类名
       lt;function-signaturegt;
              java.lang.String yymmddhhmm(java.util.Date) //传入值的类型(返回类型)
       lt;/function-signaturegt;
   lt;/functiongt; ...</description>
   <pubDate>2010.03.14 07:03:06</pubDate>
   <guid>http://hellophper.com/htm/4/388.html</guid>
  </item><item>
   <title>struts2.18 支持 json</title>
   <link>http://hellophper.com/htm/4/387.html</link>
	 
   <description>导入jsonplugin-0.33.jar包 ...</description>
   <pubDate>2010.03.14 07:03:02</pubDate>
   <guid>http://hellophper.com/htm/4/387.html</guid>
  </item><item>
   <title>如何获取下一条插入的自增ID</title>
   <link>http://hellophper.com/htm/4/386.html</link>
	 
   <description>利用Mysql自带的一个函数语句 ldquo;SHOW TABLE STATUSrdquo;，可以获取当前数据库里的所有表的属性等信息，通常用来做数据库的优化和维护。如果需要指定某一张表的话，可以通过两种方法指定。
一种是网上给出来的：
show table status like lsquo;TableNamelsquo;
另外就是常见的where语句
show table status where Name =rsquo;TableNamelsquo;得到的结果集里面有一列AUTO_INCREMENT，是一个Int值变量，获取之后就是下一个要插入的ID了。 ...</description>
   <pubDate>2010.03.14 07:03:22</pubDate>
   <guid>http://hellophper.com/htm/4/386.html</guid>
  </item><item>
   <title>java DB2数据库Blob型字段读取 Ext页面</title>
   <link>http://hellophper.com/htm/4/381.html</link>
	 
   <description>存储页面http://hellophper.com/htm/4/380.html

2种方式
1：数据库读取之后在项目目录下生成图片文件，返回到ext页面上的是根目录下的url
2：使用servlet生成图片，通过判断id来生成不同的图片

iBATIS代码：

	
		
      		select t.userid,t.signcode,t.signnote,t.signimg from tbpe_employeesign t 
	
		
	

java代码：

/**
	 * 字节转成文件
	 * 
	 * @param userid
	 * 用户id
	 * @return 图片根目录下的url
	 * @throws Exception
	 */
	public String BytetoFile(String userid) throws Exception {
		String return_url = null;
		String path = this.getClass().getClassLoader().getResource("/")
				.getPath();
		path = path.substring(0, path.length() - 17);
		
		FileOutputStream fos = null;
		// InputStream is = null;

		byte[] Buffer = new byte[4096];

		File myFilePath = new File(path + "/WriteImage");

		String row = (String) Sql.getSqlMapClient().queryForObject(
				"select.image.byuseridcount", userid);
		

		if (!row.equals("0")) {

			try {

				ImageBean blob = (ImageBean) Sql.getSqlMapClient()
						.queryForObject("select.image.byuserid", userid);

				ByteArrayInputStream is = new ByteArrayInputStream(blob
						.getSignimg());
				if (!myFilePath.exists())
					myFilePath.mkdir();

				File file = new File(path + "/WriteImage/" + userid + ".jpg");
				if (!file.exists()) {
					file.createNewFile(); // 如果文件不存在，则创建

					fos = new FileOutputStream(file);
					// is = blob.getSignimg().getBinaryStream();

					int size = 0;
					while ((size = is.read(Buffer)) != -1) {
						// System.out.println(size);
						fos.write(Buffer, 0, size);
					}

				}
				return_url = "WriteImage/" + userid + ".jpg";
			} catch (Exception e) {
				System.out.println("[OutPutFile error : ]" + e.getMessage());
			} finally {
				// 关闭用到的资源
				if (!myFilePath.exists())
					fos.close();

			}
		}
		return return_url;

	}

ext页面：

var grid_DataStore=null;
var pageSize=15;
var reloadData=null;


function toggle(sDivId,id) {
	var oDiv = document.getElementById(sDivId);
	//alert(sDivId);
	oDiv.style.display = (oDiv.style.display == "none") ? "block" : "none";
	
	var oDiv1 = document.getElementById(id);
	//alert(sDivId);
	oDiv1.style.display = (oDiv1.style.display == "none") ? "block" : "none";
	}
	
	
function createSearchPanel()
{ 
	 
	    Ext.form.Field.prototype.msgTarget = 'side';

        var combo_list_org_store = new Ext.data.SimpleStore( {
		fields : [ "valueField", "displayField" ],
		data : []
	});

	var combo_list_org = new Ext.form.ComboBox( {
		store : combo_list_org_store,
		emptyText : '请选择所属机构',
		fieldLabel : '所属机构',
		valueField : "valueField",
		displayField : "displayField",
		name : 'orgcode',
		mode : 'local',
		typeAhead : true,
		anchor : "90%",
		forceSelection : false,
		triggerAction : 'all',
		selectOnFocus : true
	});
		
		
			GindexManage.getDropDownData(function(value) {
				var combo_list_org_store_data = new Array();
				for ( var i = 0; i < value.list_o_org.length; i++) {
					combo_list_org_store_data[i] = new Array();
					combo_list_org_store_data[i][0] = value.list_o_org[i].VALUEFIELD;// valueField
					combo_list_org_store_data[i][1] = value.list_o_org[i].DISPLAYFIELD;// displayField
				}
				combo_list_org_store
						.loadData(combo_list_org_store_data);
			});
        
		var searchPanel = new Ext.FormPanel({
        labelAlign: 'left',
        frame:true,
        title: '查询条件',
        bodyStyle:'padding:0px 0px 0',
        
        labelWidth:60,
        buttonAlign:'right',
        items: [{
            layout:'column',
            items:[{
                columnWidth:1/3,
                layout: 'form',
                items: [ {
                    xtype:'textfield',
                    fieldLabel: '员工姓名',
                    name: 'emname', 
                    anchor:'90%'
                }
                ]
            },{
                columnWidth:1/3,
                layout: 'form',
                items: [ {
                    xtype:'textfield',
                    fieldLabel: '员工手机',
                    name: 'mobilenmber', 
                    anchor:'90%'
                }
                ]
            },{
                columnWidth:1/3,
                layout: 'form',
                items: [ combo_list_org]
            }]
        }],

        buttons: [{
        	
            text: '查询',
            /*iconCls : 'search_ico',*/
            handler:function(){reloadData();}
        },{
            text: '重置',
            /*iconCls : 'refresh_ico',*/
             handler:function(){searchPanel.form.reset();}
        }]
    });
	reloadData=function(){
            if(!searchPanel.form.isValid())return; 
            var formLength=searchPanel.form.items.items.length;
            var searchFilds=new Object();
            searchFilds["start"]=0;
            searchFilds["limit"]=pageSize;
           	 for(var i=0;i<formLength;i++)
           	 {
           	 	var control=searchPanel.form.items.items[i];
           	 	searchFilds[control.name]=control .getValue();
           	 	
           	 }
           	  grid_DataStore.load({params:searchFilds}); 
    };
    

    
   return searchPanel;
	
}

function createGridPanel()
{
	
	function change(val){
        if(val == null){
            return '没有签名';
        }else{
            return '显示签名关闭签名';
        }
        return val;
    }
    
    
var recordType = Ext.data.Record.create([
		    {name: "userid"},
			{name: "emname"},
			{name: "mobilenmber"},
			{name: "orgname"},
			{name: "image"}
			
			
     ]);
    grid_DataStore = new Ext.data.Store({
         
        proxy: new Ext.data.DWRProxy(ImageManage.getEmployeeList, true),
         
        reader: new Ext.data.ListRangeReader({
            totalProperty: 'totalSize',
            id: 'userid'
        }, recordType), 
        remoteSort: true
    });
    grid_DataStore.setDefaultSort('userid', 'asc');
   
    var grid_sm = new Ext.grid.CheckboxSelectionModel();
    var cm = new Ext.grid.ColumnModel([
      grid_sm,
       
       
       {header: "员工姓名", dataIndex: "emname",sortable: true},
       {header: "手机号码", dataIndex: "mobilenmber",sortable: true},
       {header: "机构名称", dataIndex: "orgname",sortable: true},
       {header: "签名图片", dataIndex: "image",renderer: change}  
        ]); 
    cm.defaultSortable = true;
	
	
	
    var grid = new Ext.grid.GridPanel({
        frame: true,
        title:'用户信息',
        store: grid_DataStore,
        cm: cm,
        trackMouseOver:false,
        sm: grid_sm,
        loadMask: true,
        iconCls : 'user_ico',
        
        viewConfig: {
            forceFit:true  
        },
        bbar: new Ext.PagingToolbar({
            pageSize:pageSize,
            store: grid_DataStore,
            displayInfo: true,
            displayMsg: '显示 {0} - {1} ，总共 {2}',
            emptyMsg:'没有内容',
            firstText: '第一页',
			prevText: '前一页',
 			nextText: '后一页',
 			lastText: '最后一页',
 			refreshText: '刷新',
            
            items:[
                '-', {
                pressed: true, 
                text: '新增签名',
                /*iconCls: 'user_add_ico', */
                handler: e_add
            },'-', { 
                pressed: true,
                text: '修改签名', 
                /*iconCls: 'user_edit_ico', */
                handler: e_eidt
            },'-', { 
                pressed: true,
                text: '删除签名', 
                /*iconCls: 'user_del_ico', */
                handler: e_delete            
            }]
        })
    });  
    grid_DataStore.load({params:{start:0, limit:pageSize}}); 
    
    //Grid this, Number rowIndex, Number columnIndex, Ext.EventObject e
    /*****
    grid.on("cellclick",function(Grid,rowIndex,columnIndex,e){
    	if(columnIndex==3){
    		 var upwin=new uploadwindow();
    		 	upwin.win.show();
    	}
    });
    ******/
    function e_add(btn, e){
          if(grid_sm.getSelections().length==0)
      {
      	alertMsg("请选择要修改的用户");
      	return;
      }
      if(grid_sm.getSelections().length>1)
      {
      	alertMsg("请选择单个要修改的用户");
      	return;
      }
    var userid=grid_sm.getSelections()[0].get("userid"); 
     window_add = openWindow("add.html?id="+userid+"",'上传签名',510,145);
    }
     
    function e_eidt(btn, e){
      if(grid_sm.getSelections()[0].get("image") == null){
    	alertMsg("先增加签名");
      	return;	
    	}
      if(grid_sm.getSelections().length==0)
      {
      	alertMsg("请选择要修改的用户");
      	return;
      }
      if(grid_sm.getSelections().length>1)
      {
      	alertMsg("请选择单个要修改的用户");
      	return;
      }
      var userid=grid_sm.getSelections()[0].get("userid"); 
      window_edit = openWindow("edit.html?id="+userid+"",'签名修改',510,145); 
    }
    
    //function e_cipher(btn,e){
    //var n_yhdh=grid_sm.getSelections()[0].get("n_yhdh"); 
    // openWindow("cipher.html",'修改密码',300,170);
    //}
    
    function e_delete(btn, e){       
      if(grid_sm.getSelections().length==0)
      {
      	alertMsg("请选择要删除签名的用户");
      	return;
      }
      var userid=new Array();
      
      for(var i=0;i<grid_sm.getSelections().length;i++)
      {
      	userid[i]=grid_sm.getSelections()[i].get("userid");
      	
      } 
        Ext.MessageBox.confirm("删除提示","确定要删除用户"+userid+"的签名?",function(e){	 	
		if(e=="yes"){
			 ImageManage.deleteImage(userid,function(value){
      	if(value)
      	{
      		reloadData();
      		alertMsg(value.message);
      		
      	}else{
      		alertMsg(value.message);
      		alertMsg("删除角色失败");
      	}
      });
		}else return;
		});             
    }
    

    
	
    return grid;
}
 
Ext.onReady(function(){ 
	Ext.QuickTips.init(); 
	Ext.BLANK_IMAGE_URL = '../../images/s.gif'; 
	var searchPanel=createSearchPanel();
	var gridPanel=createGridPanel();
	
	searchPanel.region='north';
	searchPanel.height=100;
	searchPanel.contentEl= 'searchPanel'; 
	searchPanel.collapsible = true;
	
	gridPanel.region='center';
	gridPanel.contentEl= 'gridPanel';
	gridPanel.collapsible = true;
	
	 var viewport = new Ext.Viewport({
			            layout:'border',
			            animate:false,
			            items:[searchPanel,gridPanel]}
			          ); 
});

servlet方式：

package com.copote.businessManage.uploadImage;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.sql.SQLException;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.copote.Frame.Sql;
import com.copote.businessManage.uploadImage.bean.ImageBean;

public class ShowPic extends HttpServlet{

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

	public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException{
		doPost(request,response);
}
	
	public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException{
		System.out.println("这里已经执行");
		OutputStream os = null;
		response.setContentType("text/html");
		os = response.getOutputStream();
		ImageBean blob = null;
		try {
			blob = (ImageBean) Sql.getSqlMapClient()
			.queryForObject("select.image.byuserid", request.getParameter("id"));
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		byte[] Buffer = new byte[4096];
		ByteArrayInputStream is = new ByteArrayInputStream(blob
				.getSignimg());
		int size = 0;
		while ((size = is.read(Buffer)) != -1) {
			// System.out.println(size);
			os.write(Buffer, 0, size);
		}
		is.close();
        os.close();
	}
}

 	 	 	 	 	 	 	 	 	
		SyntaxHighlighter.config.clipboardSwf = 'http://www.hellophper.com/scripts/clipboard.swf';
		SyntaxHighlighter.all();
	 ...</description>
   <pubDate>2009.12.22 22:12:47</pubDate>
   <guid>http://hellophper.com/htm/4/381.html</guid>
  </item><item>
   <title>java DB2数据库Blob型字段存储 Ext页面</title>
   <link>http://hellophper.com/htm/4/380.html</link>
	 
   <description>公司需要做一个吧图片直接存储进数据库的功能，尝试了几天终于做了出来
环境：
Tomcat5.5或6.0
jdk1.6.0_14
应该是iBATIS 2.X
DB2 8.1
ext3.0
DWR
流程：先使用一个servlet上传至项目的服务器，然后再读取项目的的路径，获取上传的文件，读取文件流转化成能存储的Byte类型，通过 iBATIS写入DB2数据库
servlet web.xml配置：

	      imageupload    com.copote.businessManage.upload.fileupload  	
  	      imageupload       /imageupload   	
	

ext页面代码：
Html页面：
关键是lt;div id=quot;addPanelquot;gt;lt;/divgt;其他就是一些基本引用





角色管理
		
		
   		
   		
   		
		
		
	    
	    
    	
	    
	   
	    
	    
		 
		 
		 
		 








Js页面：
关键代码：url: '../../imageupload?stylePath=imageam post=addam id='+getRequestParame(quot;idquot;),
其他是一些布局

function upload(fb){
	if(addPanel.getForm().isValid()){
		alert(addPanel.items.items[0].getValue());
		addPanel.getForm().submit({                	
                    success: function(fp, action){ 
                        //Ext.Msg.alert('信息', action.result.message); 
                        //alert(parent.dbsx_panel);
                        alert(uploadwindow.id);
                        
                    }, 
                    failure: function(fp, action){ 
                        Ext.Msg.alert('错误', action.result.message);                        
                    } 
                }); 
	               
                }
	
}


function createAddPanel()
{	
		Ext.QuickTips.init(); 
	    Ext.form.Field.prototype.msgTarget = 'side';

                       
	    
         
	var fp = new Ext.FormPanel({
	        fileUpload: true,
	        width: 500,
	        frame: true,
	        title: '上传签名',
	        autoHeight: true,
	        bodyStyle: 'padding: 10px 10px 0 10px;',
	        labelWidth: 50,
	        url: '../../imageupload?stylePath=imagepost=addid='+getRequestParame("id"),
	        defaults: {
	            anchor: '95%',
	            allowBlank: false,
	            msgTarget: 'side'
	        },
	        items: [{
	            	xtype: 'textfield', 
		            fieldLabel: '文件名', 
		            name: 'file', 
		            inputType: 'file',  //ļ 
		            anchor:'95%'
	        }],
	        	buttons: [{
	            text: '确定',
	            handler: function(){
	            	if(fp.getForm().isValid()){
		//alert(fp.items.items[0].getValue());
		fp.getForm().submit({                	
                    success: function(fp, action){ 
                       
                        parent.alertMsg(action.result.message,'信息'); 
                        parent.reloadData();
                        parent.window_add.close();
                        //alert(uploadwindow.id);
                        
                    }, 
                    failure: function(fp, action){ 
                        Ext.Msg.alert('错误', action.result.message);                        
                    } 
                }); 
	               
                }
	            }
	        },{
	            text: '重置',
	            handler: function(){
	                fp.getForm().reset();
	            }
	        }]
	    });

    fp.render("addPanel");

	 

} 

Ext.onReady(function(){ 
Ext.QuickTips.init(); 
	Ext.BLANK_IMAGE_URL = '../../images/s.gif'; 
	createAddPanel(); 
});


Java：

ImageBean：
关键代码：private byte[] signimg;

package com.copote.businessManage.uploadImage.bean;

import java.sql.Blob;

import oracle.sql.BLOB;

public class ImageBean {

	private String signcode;
	
	private String signnote;
	
	private byte[] signimg;
	
	private String image;

	private String orgname;

	public String getOrgname() {
		return orgname;
	}

	public void setOrgname(String orgname) {
		this.orgname = orgname;
	}

	private String userid	;//登录账号
	private String emname	;//员工姓名
	private String emnumber	;//员工工号
	private String emcode	;//员工编码
	private String orgcode	;//机构编码
	private String o_orgcode;//机构名称
	private String decode	;//部门编码
	private String emsta	;//员工岗位
	private String emstatus	;//员工状态

	private String mobilenmber	;//手机号码
	private String officetel	;//办公电话
	private String email	;//电子邮箱
	private String signature	;//签章名称
	public String getEmname() {
		return emname;
	}

	public void setEmname(String emname) {
		this.emname = emname;
	}

	public String getEmnumber() {
		return emnumber;
	}

	public void setEmnumber(String emnumber) {
		this.emnumber = emnumber;
	}

	public String getEmcode() {
		return emcode;
	}

	public void setEmcode(String emcode) {
		this.emcode = emcode;
	}

	public String getOrgcode() {
		return orgcode;
	}

	public void setOrgcode(String orgcode) {
		this.orgcode = orgcode;
	}

	public String getO_orgcode() {
		return o_orgcode;
	}

	public void setO_orgcode(String oOrgcode) {
		o_orgcode = oOrgcode;
	}

	public String getDecode() {
		return decode;
	}

	public void setDecode(String decode) {
		this.decode = decode;
	}

	public String getEmsta() {
		return emsta;
	}

	public void setEmsta(String emsta) {
		this.emsta = emsta;
	}

	public String getEmstatus() {
		return emstatus;
	}

	public void setEmstatus(String emstatus) {
		this.emstatus = emstatus;
	}

	public String getMobilenmber() {
		return mobilenmber;
	}

	public void setMobilenmber(String mobilenmber) {
		this.mobilenmber = mobilenmber;
	}

	public String getOfficetel() {
		return officetel;
	}

	public void setOfficetel(String officetel) {
		this.officetel = officetel;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getSignature() {
		return signature;
	}

	public void setSignature(String signature) {
		this.signature = signature;
	}



	public String getImage() {
		return image;
	}

	public void setImage(String image) {
		this.image = image;
	}

	public String getSigncode() {
		return signcode;
	}

	public void setSigncode(String signcode) {
		this.signcode = signcode;
	}

	public String getUserid() {
		return userid;
	}

	public void setUserid(String userid) {
		this.userid = userid;
	}

	public String getSignnote() {
		return signnote;
	}

	public void setSignnote(String signnote) {
		this.signnote = signnote;
	}

	public byte[] getSignimg() {
		return signimg;
	}

	public void setSignimg(byte[] signimg) {
		this.signimg = signimg;
	}
}

fileupload：
关键代码：
bean.setSignimg(new ImageManage().FileToByte(uploadPath + fileName));
new ImageManage().insert(bean);

//文件转成字节blob型



package com.copote.businessManage.upload;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Timestam 
import java.text.SimpleDateFormat;
import java.util.HashMa 
import java.util.Iterator;
import java.util.List;

import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.commons.fileupload.*;

import com.copote.Frame.Sql;
import com.copote.businessManage.employee.bean.EmployeeInfo;
import com.copote.businessManage.employee.dao.EmployeeManage;
import com.copote.businessManage.uploadImage.bean.ImageBean;
import com.copote.businessManage.uploadImage.dao.ImageManage;
import com.lowagie2.text.Image;

public class fileupload extends HttpServlet {
	/**  
	     *   
	     */
	private static final long serialVersionUID = 7440302204266787092L;
	String path = this.getClass().getClassLoader().getResource("/").getPath();
	String tempPath = path.substring(0, path.length() - 17) + "/upload/tmp/"; // 用于存放临时文件的目录

	public fileupload() {
		super();
		System.out.println("文件上传启动");
	}

	public void destroy() {
		super.destroy(); // Just puts "destroy" string in log
		// Put your code here
	}

	public void init() throws ServletException {
		System.out.println("文件上传初始化...");
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws IOException, ServletException {
		try {

			String uploadPath = path.substring(0, path.length() - 17)
					+ "/upload/"; // 用于存放上传文件的根目录
			File FileFoldersUpload = new File(uploadPath);
			//判断是否有upload文件夹
			if (!FileFoldersUpload.exists())
				FileFoldersUpload.mkdir();
			
			String stylePath = request.getParameter("stylePath");
			
			
			File FileFoldersImage = new File(uploadPath+stylePath);
			//判断是否有upload/image文件夹
			if (!FileFoldersImage.exists())
				FileFoldersImage.mkdir();
			
			File FileFoldersTmp = new File(uploadPath+"tmp");
			//判断是否有upload/tmp文件夹
			if (!FileFoldersTmp.exists())
				FileFoldersTmp.mkdir();
			
			if (stylePath == null)
				stylePath = "";
			String picName = request.getParameter("id");

			if (stylePath != null || stylePath != "null" || stylePath != "") {
				uploadPath = uploadPath + stylePath + "/";
			}

			System.out.println("---------------uploadPath:" + uploadPath);
			System.out.println("开始进行文件上传");
			DiskFileUpload fu = new DiskFileUpload();
			fu.setSizeMax(4194304); // 设置最大文件尺寸，这里是4MB
			fu.setSizeThreshold(4096); // 设置缓冲区大小，这里是4kb
			fu.setRepositoryPath(tempPath); // 设置临时目录
			List fileItems = fu.parseRequest(request); // 得到所有的文件：
			Iterator i = fileItems.iterator();
			// 依次处理每一个文件：
			String filename = null;
			while (i.hasNext()) {
				FileItem fi = (FileItem) i.next();
				String fileName = fi.getName();// 获得文件名，这个文件名包括路径：
				//上传中文文件名
				fileName = new String(fileName.getBytes("gbk"), "Utf-8");
				if (fileName != null) {
					// 在这里可以记录用户和文件信息
					// 此处应该定义一个接口（CallBack），用于处理后事。
					// 写入文件a.txt，你也可以从fileName中提取文件名：
					String extfile = "sss"
							+ fileName.substring(fileName.indexOf(".")); // .jpg

					extfile = extfile.substring(extfile.length() - 5);
					extfile = extfile.substring(extfile.indexOf(".")); // .jpg
					System.out.println("文件后缀名：" + extfile);
					if (checkFileType(extfile)) {

						File files = new File(uploadPath + fileName);

						String row = new ImageManage().RowByUserid(request
								.getParameter("id"));

						System.out.println("行数" + row);
						System.out.println(request.getParameter("post"));
						//判断是否只有一个签名和是否是编辑
						if (row.equals("0") || request.getParameter("post").equals("edit")) {

							if(request.getParameter("post").equals("edit")){
								String[] userid = new String[]{request
										.getParameter("id")};
								//删除原来的签名
								new ImageManage().deleteImage(userid);
								fi.write(files);
								filename = fileName;
								response.setContentType("text/html;charset=gbk");
								response.getWriter().print(
										"{'success':true,'message':'修改成功','filename':'"
												+ filename + "'}");
							}else{
								fi.write(files);
								filename = fileName;
								response.setContentType("text/html;charset=gbk");
								response.getWriter().print(
										"{'success':true,'message':'上传成功','filename':'"
												+ filename + "'}");
							}
							
							System.out.println("图片上传成功");
							System.out.println(uploadPath);
							System.out.println(fileName);

							ImageBean bean = new ImageBean();
							bean.setSignnote("");
							bean.setUserid(request.getParameter("id"));
							//文件转成字节blob型
							bean.setSignimg(new ImageManage()
									.FileToByte(uploadPath + fileName));
							new ImageManage().insert(bean);

							FileInputStream str = new FileInputStream(files);
							EmployeeInfo employeeInfo = new EmployeeInfo();

						} else {
							response.setContentType("text/html;charset=gbk");
							response.getWriter().print(
											"{'success':false,'message':'上传失败，只能上传一个签名'}");
						}

					} else {
						response.setContentType("text/html;charset=gbk");
						response.getWriter().print(
								"{'success':false,'message':'上传失败，请检查文件类型'}");
					}
				}
			}

			// 跳转到上传成功提示页面

		} catch (Exception e) {
			e.printStackTrace();
			response.setContentType("text/html;charset=utf-8");
			response.getWriter().print("{'success':false,'message':'上传失败'}");
			// 可以跳转出错页面
		}

	}

	// .bmp,.jpeg,.gif,.png,.jpg
	public boolean checkFileType(String fileType) {
		if (fileType.equalsIgnoreCase(".jpg"))
			return true;
		if (fileType.equalsIgnoreCase(".bmp"))
			return true;
		if (fileType.equalsIgnoreCase(".jpeg"))
			return true;
		if (fileType.equalsIgnoreCase(".gif"))
			return true;
		if (fileType.equalsIgnoreCase(".png"))
			return true;
		if (fileType.equalsIgnoreCase(".dll"))
			return true;
		if (fileType.equalsIgnoreCase(".exe"))
			return true;
		if (fileType.equalsIgnoreCase(".txt"))
			return true;
		return false;
	}

}


插入数据代码：

/**
	 * 添加员工签名
	 * @param bean
	 * @return
	 * @throws IOException
	 */
	public Map insert(ImageBean bean) throws IOException {

		Map map = new HashMap();
		boolean value = true;
		try {
			Sql.getSqlMapClient().insert("insert.image.bean", bean);
			map.put("msg", "增加成功");
			value = true;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			map.put("msg", "增加失败");
			value = false;
		}
		map.put("success", value);
		return ma 
	}

核心类：

/**
	 * 文件转成字节数组
	 * 
	 * @param url
	 * 文件路径
	 * @return
	 * @throws IOException
	 */
	public static byte[] FileToByte(String url) throws IOException {
		BufferedInputStream in = new BufferedInputStream(new FileInputStream(
				url));
		ByteArrayOutputStream out = new ByteArrayOutputStream(1024);

		byte[] temp = new byte[1024];
		int size = 0;
		while ((size = in.read(temp)) != -1) {
			out.write(temp, 0, size);
		}
		in.close();

		byte[] content = out.toByteArray();
		return content;
	}

Ibatis：





	<typeAlias alias="Image"
		type="com.copote.businessManage.uploadImage.bean.ImageBean" />
	

	
		insert into tbpe_employeesign
			(signcode, userid, signnote, signimg)
		values
			(nextval for q_signcode, #userid#, #signnote# ,#signimg#)
	



 	 	 	 	 	 	 	 	 	
		SyntaxHighlighter.config.clipboardSwf = 'http://www.hellophper.com/scripts/clipboard.swf';
		SyntaxHighlighter.all();
	 ...</description>
   <pubDate>2009.12.22 22:12:13</pubDate>
   <guid>http://hellophper.com/htm/4/380.html</guid>
  </item><item>
   <title>文章排行榜插件</title>
   <link>http://hellophper.com/htm/4/379.html</link>
	 
   <description>先下载：http://forum.typecho.org/viewtopic.php?f=6am t=438
安装成功后

把文件复制到var\Widget\Contents\Post下

复制下面的语句到模板的任意地方
代码:
lt;?php $this-gt;widget('Widget_Contents_Post_Order')
                        -gt;parse('lt;ligt;lt;a href=quot;{permalink}quot;gt;{title}lt;/agt;lt;/ligt;'); ?gt;


演示地址：http://hellophper.com/typecho/ ...</description>
   <pubDate>2009.11.09 06:11:47</pubDate>
   <guid>http://hellophper.com/htm/4/379.html</guid>
  </item><item>
   <title>文章页面访问次数统计插件</title>
   <link>http://hellophper.com/htm/4/378.html</link>
	 
   <description>自从开始弄java，好久没有写php代码了，好生疏
传到该上传的位置，后台激活
lt;?php include  quot;usr/plugins/ArticleVisit/ArticleVisit.phpquot;  ?gt;复制到模板的post.php页面的任意位置

输入格式：访问次数xx次；可以自行在这个ArticleVisit.php页面更改

几个说明：
1：我使用的是mysql数据库，其他的没有测试
2：使用的int  10位，我想应该够了
3：数据库表的前缀一定要是默认的，也就是typecho_


遇到一个问题：在文章页面怎么获取单片文章的cid？期待高手的解答，我是采用获取当前页面的url取出cid部分，方法不太好


演示地址：http://hellophper.com/typecho/
  
下载地址：http://hellophper.com/ArticleVisit.zip ...</description>
   <pubDate>2009.11.03 09:11:09</pubDate>
   <guid>http://hellophper.com/htm/4/378.html</guid>
  </item><item>
   <title>Windows 7中两个不易被发现且很搞笑的错误</title>
   <link>http://hellophper.com/htm/4/377.html</link>
	 
   <description>最近，有Windows  7用户发现，在屏幕键盘中，数字小键盘上没有按键3和按键8，原本应该是数字3的位置显示的是数字1，应该显示8的位置显示的是数字4（如图1）。有用户猜测，这可能是微软为了避免有ldquo;歧视妇女rdquo;的嫌疑，故意将ldquo;数字键38替换rdquo;了。
  

Windows  7数字小键盘上没有按键3和8
小技巧，打开Windows 7数字小键盘的方法：
在开始菜单的ldquo;搜索程序和文件rdquo;中输入ldquo;oskrdquo;，回车后即可打开Windows 7屏幕键盘程序。
如果你是第一次Windows  7屏幕键盘，系统默认是没有打开ldquo;数字小键盘rdquo;的，单击图1中的ldquo;选项rdquo;，在弹出的对话框中勾选ldquo;打开数字小键盘rdquo;，然后点击右下角的ldquo;NumLockrdquo;按键即可切换出数字小键盘了。

勾选打开数字小键盘
另外有网友发现了Windows 7声音属性中的一个汉字错误，请看下图：

Windows  电话播入
一般的，我们都是写成ldquo;电话拨入rdquo;，但是在上图中写成了ldquo;电话播入rdquo;。不知道是咱们这些普通用户搞错了，还是微软在汉化工作中出现的瑕疵。笔者在这里跟大家分享这两个小Bug，并不是想表达微软有多么粗心，而是想佩服一下用户的细心。 ...</description>
   <pubDate>2009.10.11 23:10:47</pubDate>
   <guid>http://hellophper.com/htm/4/377.html</guid>
  </item><item>
   <title>cnBate 经典评论</title>
   <link>http://hellophper.com/htm/4/376.html</link>
	 
   <description>1.信产部称我国97%乡镇具备互联网接入条件
RE:天朝太君：你的，网络的好？ 
           老农：我的，网络大大的好! 谢谢太君!  我们除了新华网就只能看CCTV，完全不用接触国际互联网的腐蚀。
2.国内高校争相升级IPv6网络 为二代互联网准备
RE:我们天朝的骄傲IPv9呢? 怎么不见了？既然超英赶美为什么还不赶快现身？
楼上的，我看到新闻就想进来说为什么不用IPv9呢？结果被你抢先了
干嘛？有IPV9了，还为IPV6做准备？？装B啊？
3.评论:ldquo;卡瑞之争rdquo;瑞星败诉 中国杀毒软件行业敲响警钟
RE:R星丢尽了中国人的脸面 
他不要脸是个传统 
从他换老总文明用语走刘旭 
从他暗中坏刘旭开始 
R星就注定了要被国人唾骂  
不用R星 
从我做起  我不是枪手只是一个普通的在校大学生我以前也用过R星不过那个是两年以前这两年他的本事不见长倒是越来越坏所以我选择了放弃现在我用的是小红伞一个免费但是比R星好很多的杀软还有再说一句  R行的防火墙很烂很差劲 R星的人你点举报也好反对也好不怕你们做惯了其他人请支持
4.美媒:中国网络战攻防战力世界独一无二
RE:
我左八荣，右八耻，嘻嘻踢胃在腰间，水产金盾在胸口，人挡杀人，佛挡杀佛。上食埃土，下饮黄泉，脚踏华南虎，手举张殊凡。很好很强大，很黄很暴力，大风起兮云飞扬，威加海内兮归天/朝.为了防止世界被破坏，  为了维护世界的和平， 妇炎洁! 我们是穿梭在银河的和! 谐先锋， 水产、红色的明天等着我们。有了妇炎洁，洗洗更健康!    说这话的人是扯淡.全球根服务器绝大部分在你美国,到时候也不知道谁威胁谁呢
看看G.F.W，就知道天朝的网络是多么的厉害了
只要用CCTV就可以很容易的踏平资本主义了
如果WALL可以防病毒的话，那瑞X早就倒闭了。还有，那个熊猫和尚是怎么穿墙的？丫是忍者吗？
5.《南方都市报》:魔兽世界ldquo;入侵rdquo;传统媒体 主流媒体屡次发生借用网游地图事件
显然，很多媒体从业者都是魔兽世界的忠实玩家。前不久，沈阳一家报纸在讲古代中美洲瘟疫的时候配上了魔兽世界西瘟疫之地的地图，河南一家报纸在描述股票牛市的时候借用了魔兽世界牛头人种族的形象，央视的节目里也几次出现了魔兽世界的主题音乐渲染气氛。  
没想到，这几天央视军事栏目似乎也找不到世界地图了。
  
阿拉希高地地图的激流堡、落槌镇、避难谷都不见了。


在央视军事纪实节目示意图


现实世界中的土耳其、伊朗、伊拉克三国,与央视示意图有一定差别。
RE:
一边不断泼脏水咒骂网游，一边心安理得地引用网游里的各种素材，这就是中国的霉体
很黄、很暴力。赶紧关掉
还有网友认为大家应该欣赏这个央视工作人员的幽默.
哈，临时工 干的
6.深圳成全国高仿手机ldquo;重镇rdquo; 2亿部有4000万假冒
RE:
这不算什么。。 

法拉利限量版 全世界只发行了6辆 

但在中国就有7辆  ...</description>
   <pubDate>2009.10.11 23:10:13</pubDate>
   <guid>http://hellophper.com/htm/4/376.html</guid>
  </item><item>
   <title>中国办公室的22条潜规则</title>
   <link>http://hellophper.com/htm/4/375.html</link>
	 
   <description>第一条：必须有一个圈子。无论如何做都是画地为牢：不加入一个圈子，就成为所有人的敌人；加入一个圈子，就成为另一个圈子的敌人；加入两个圈子，就等于没加入圈子。只有独孤求败的精英才可完全避免圈子的困扰mdash;mdash;这种人通常只有一个圈子，圈子里只站着老板一个人。
第二条：必须争取成为第二名。名次与帮助你的人数成正比mdash;mdash;如果是第一名，将因缺乏帮助而成为第二名；第二名永远是得道多助的位置，坏处是永远不能成为第一名。
第三条：必须理解职责的定义。职责是你必须要做的工作，但办公室的生存定律是，职责就是你必须要做的工作之外的所有工作。
第四条：必须参加每一场饭局。如果参加，你在饭局上的发言会变成流言；如果不参加，你的流言会成为饭局上的发言。
第五条：必须懂得八卦定理。和一位以上的同事成为亲密朋友，你的缺点与隐私将在办公室内公开；和一位以下的同事成为亲密朋友，所有人都会对你的缺点与隐私感兴趣。
第六条：必须明白加班是一种艺术。如果你在上班时候做事，会因为没有加班而被认为不够勤奋；如果你不在上班时间做事，你会被认为工作效率低下而不得不去加班。
第七条：必须熟练接受批评的方法。面对上司的判断，认为你没错，你缺乏认识问题的能力；认为你错了，你没有解决问题的能力mdash;mdash;接受错误最好的方式就是对错误避而不谈。最后，不准和上级或老板讲公正。
第八条：必须理解ldquo;难得糊涂rdquo;的词义。糊涂让你被人认为没有主见，不糊涂让你被别人认为难以相处mdash;mdash;ldquo;难得糊涂rdquo;在于糊涂的时机，什么时候糊涂取决于你不糊涂的程度。
第九条：必须明白集体主义是一种选择。如果你不支持大部分人的决定，想法一定不会被通过；如果你支持大部分人的决定，将减少晋升机会mdash;mdash;有能力的人总是站在集体的反面。
第十条：必须论资排辈。如果你不承认前辈，前辈不会给你晋升的机会；如果承认前辈，则前被晋升之前，你没有晋升机会mdash;mdash;论资排辈的全部作用，是为有一天你排在前面而做准备。
第十一条：必须禁止智利排行。天才应避免的嘴庸才，虽然天才一定会得罪庸才mdash;mdash;庸才总不太喜欢和天才相处。
第十二条：必须学会不谈判的技巧。利益之争如果面对面解决，那就变得无法解决；如果不面对面解决，那就不会被真正解决。一个原则，利益之争从来就不会被解决。
第十三条：必须理解秘密的存在意义。如果一件事成为秘密，它存在的意义就是被人知道，如果一个秘密所有人知道，你必须说不知道；同理，如果一个秘密所有人都说不知道，则可以推断，所有人都知道。
第十四条：必须理解开会是一种道。道可道，非常道；名可名，非常名。开会不能不发言，发言不能有内容。如果你的发言有内容，最好选择不发言mdash;mdash;开会的目的是寻找一个解决问题的方法，在大部分情况下，这个方法就是开会。
第十五条：必须让婚姻状况称为秘密。隐婚人士在办公室谈情是一场喜剧，单身人士在办公室谈情是一场悲剧。最好的结果是，以婚人士获得一场办公室案情。最坏的结果是，未婚人士获得一场办公室婚姻。最后一条，不到万不得已，永远不要打老板女秘书的主意。
第十六条：必须掌握一种以上的高级语言。高级语言包括中文中夹杂外语、在怒骂中附送奉承、在表达保密原则的同时揭露他人秘密、在黄段子中表达合同意向。语言技巧高是下乘，发言时机好是上乘。使用高级语言的时机不对，还不如使用低级语言但时机正确。
第十七条：必须将理财作为日常生活的一部分。主管在身边时要将手机当公司电话；主管不在身边的时候，要将公司电话当私人手机；像同事借钱，不借钱给同事；陌生人见面要第一个买单，成为熟人后永远不要买单。最后一条，捐款永远不要超过上级。
第十八条：必须明白参加培训班的意义。培训班不是轻松的春游，它的目的是学习你工作职责之外的知识；由于学习的只是在你工作职责之外，培训班可当作一次轻松的春游。
第十九条：必须学会摆谱。如果你很靠谱但不摆谱，大部分人都认为你不靠谱，如果你不靠谱但经常摆谱，所有人都认为你很靠谱。
第二十条：必须懂得表面文章的建设性。能做会议幻灯片的，不能私下讨论；可写报告的，不能当面请示。如果一件事你已经完成，但没有交计划书，你等于 没有做；如果一件事你没有去做，但交了计划书，你可以当它已经完成mdash;mdash;毕竟所有学过工商管理的老板都固执地认为，看计划书是他的事，执行是下面的事。
第二十一条：必须与集体分享个人成功。所有人都是蜡烛mdash;mdash;要点燃自己照亮别人，如果你只照亮自己，你的前途将一片黑暗；如果只照亮别人，你将成为灰烬。
第二十二条：必须遵守规则。要成为遵守规则的人，请按显规则办事；要被人认为是一个遵守规矩的人，请按潜规则办事。显规则和潜规则往往相反，故当二者发生冲突时，按显规则说，按潜规则办，是为最高原则。 ...</description>
   <pubDate>2009.09.29 19:09:28</pubDate>
   <guid>http://hellophper.com/htm/4/375.html</guid>
  </item><item>
   <title>哥玩的不是劲舞团，是寂寞</title>
   <link>http://hellophper.com/htm/4/374.html</link>
	 
   <description>每当夜幕降临.
哥总是拖着疲惫的身躯
　　把我那泛黄的迷彩服脱掉,
　　换上了我从夜市第三个摊子买来的非主流服装.
　　昏黄的路灯下
　　有一道孤寂的身影走进了小巷深处的一家网吧
　　留下的只有寂寞的背影
　　没错,那就是哥
　　熟悉的走到了吧台的位置
　　拿出了8元人民币
　　淡淡的说了句 ldquo;包夜rdquo;
　　吧台新来的女网管,对我投出了一道暧昧不明的微笑
　　哥无奈的摇了摇头.
　　淡然的接过了那张临时卡.
　　在大家的心目中，我永远是个温柔而又不爱说话的哥
　　但是那个新来的网管还是看穿了我笑容背后的忧郁 .
　　
　　
　　试了一台又一台的电脑。
　　哥不如意地摇了摇头。
　　这些电脑的配置根本满足不了
　　哥玩劲舞团这款高端游戏的配置
　　突然哥眼前一亮。
　　AOC14寸CRT显示屏
　　windows 98 系统 
　　
　　delux多彩人体学键盘
　　双飞燕鼠标。
　　没错，就是它了。 
　　
　　哥用这台电脑玩劲舞团根本就是如虎添翼
　　用这台电脑，哥跳自由220
　　上30W是毫无悬念的 
　　
　　虽然我们已经告别了486，586的时代，。
　　走向了奔腾X
　　不过现在很多人家里电脑还停留在那里
　　在这里，
　　哥提醒下大家
　　想要和哥一样能熟练的运用电脑，
　　起码要买个好点的CPU， 
　　
　　熟练性的打开劲舞团
　　也就是我们这种职业玩家口中的Au
　　从qq硬盘里下了个外挂 
　　
　　对于哥这种高端玩家来说
　　有良好的技术是必要的
　　有个良好的外挂更是重中之重 
　　
　　ldquo;寻7，本哥哥的真心只属于我爱的人rdquo;
　　不一会儿，房间里的人都站满了
　　哥先把里面那些农民飞掉 
　　
　　哥平生最鄙视的就是那些顶着一身
　　系统赠送的衣服来玩劲舞团的。 
　　
　　每当看到这样的一些人，
　　作为一个职业玩家。
　　哥是不能容忍的。 
　　
　　rdquo;帅哥，我能聘么?rdquo;
　　一道醒目的红色字体吸引住了
　　哥的眼光。 
　　
　　一眼对照上去.那个妞是个带着一个
　　45块的表情的,穿着一身商城刚出来
　　的衣服. 
　　
　　哥不由得心动了, 
　　
　　哥淡然的说了句
　　ldquo;可以,视频先验货.加我秋秋
　　XXXXXX 
　　
　　哥赶紧先调了下视频.第一步肯定是
　　先把亮度调到最高,
　　这样看起来,哥身上有一种沧桑的美 
　　
　　看着视频里的自己,哥心中不由得有
　　一阵数不尽的辛酸,
　　心中默念到
　　哥这张脸去做鸭应该也挺赚钱的。 
　　
　　ldquo;你是那个寻7的？rdquo;
　　哥一看，原来那个妞已经加上哥的QQ了
　　ldquo;你的qq好漂亮啊，竟然有7个钻rdquo;
　　ldquo;呵呵，没什么。哥是个追求完美的人rdquo; 
　　
　　其实，哥内心的辛酸只有自己知道
　　每个月工头发工资，哥总是要拿出100块
　　来买那7个钻。
　　碰上工头不发工资
　　哥就要给劲舞团里面的那些亲戚
　　ldquo;阿姨.我的红钻掉了,我在家里冲不上.你帮
　　我冲一下.过几天给你劲舞团买衣服.rdquo;
　　过几天后,哥就不认识他们了.
　　
　　-视频聊天
　　哥发现和我聊天的那个妞,眼睛里好像有桃心了
　　哥为了这个效果特意不洗头了好多天..
　　哥这样颓废的形象一向在劲舞团里面都很吃香的 
　　
　　哥一看视频里面那个女的，长相还可以
　　而且还是个非主流。
　　哥赶紧问她家居何地,父母何人.
　　没想到,那个女的竟然和哥是同一个城市的 
　　
　　哥淡然的回了句rdquo;哦,那以后有机会一起来玩Aurdquo;
　　哥就把视频关了 
　　
　　哥虽然钱不多,但是对于勾引非主流这方面还是
　　比较擅长的,根据哥以前的经验,非主流的女孩子
　　都是很好约出来的.哥要故意装出一副.哥身边有
　　很多女孩子,不差你一个的样子.这样,下次约她
　　出来的时候她就不会拒绝. 
　　
　　哥不紧不慢的走到吧台.rdquo;网管.劲舞团的1000点rdquo;
　　然后萧洒的从后面的大口袋里掏出了2张5块钱.
　　面无表情的拿给了网管.
　　冲好之后哥淡然的离开了吧台，而哥的眼神。从
　　始至终都没看过那个女网管一眼.隐隐约约听到后面
　　两个网管在议论.rdquo;这个男的好帅，而且那么酷helli ..rdquo;
　　哥无奈的摇了摇头.
　　嘴角挂着一丝若有若无的苦笑. 
　　
　　回到座位。看到那根只剩下烟屁股.
　　但是还在燃烧着的香烟.哥拿起来猛
　　吸一口.指尖微烫.喉咙里充满着一股
　　劣质烟草夹杂着一丝燃烧塑料薄膜的
　　味道. 
　　
　　不只到从什么时候开始.哥很喜欢
　　这种感觉. 这种感觉,仿佛能勾起哥
　　多年在外打工的那种心酸. 
　　
　　哥毫不犹豫的把刚冲的那10块钱,买成
　　了劲舞团里面的喇叭.看着游戏里面多出
　　来的喇叭,哥平静的心里不由得生出了一
　　些***邪的念头. 
　　
　　ldquo;结婚.1-1 056Prime;
　　哥干脆利落的发了个QQ信息给刚才视频的
　　那个女的. 
　　
　　哥完全可以想象那个女的收到QQ信息时的
　　那种受宠若惊的感觉.毕竟.哥并不是一个随
　　便的人. 
　　
　　没想到,竟然没有人来帮哥结婚.
　　ldquo;没事.我叫人过来rdquo; 
　　
　　哥随手刷了2个3毛钱的喇叭.不一会儿,来了
　　几个人. 平静的跳完了那首rdquo;不得不爱rdquo;
　　一回到舞台,哥就把那两个帮忙结婚的给飞掉了.
　　没看到喇叭没人来.一看到喇叭就以为哥是有钱人,
　　就要来讨好哥了.哥看不起他们,势力的狗 
　　
　　接着.
　　哥就和我老婆在房间里跳舞.
　　一开始哥还不想叫他老婆的,对于哥这种
　　外表很冷酷.而且内心深处还带着一点儿羞
　　涩的男子,一认识几分钟就要叫别人老婆.
　　哥是有点无法接受的.
　　不过那个女的一直左一声老公.右一声老公.
　　哥心里不由得动摇了.有时候当个冷酷的哥
　　是必要的,但表现的太冷酷,说不定哥要和
　　他见面的计划就泡汤了. 
　　
　　由于哥有个良好的外挂.所以哥不管跳什么
　　模式都特别厉害.我老婆就一直在旁边喊
　　ldquo;老公你好好棒棒哦rdquo;哥对于这种众星拱月
　　的感觉还是很享受的. 
　　
　　突然,哥看到了下面刷喇叭的地方.闪过了
　　几个喇叭.
　　ldquo;某男子,你个狗.老子帮你结婚你还飞老子.
　　有本事把喇叭接上 1Prime;
　　在这里,要和亲们说一下.哥在劲舞团里面的
　　名字就叫rdquo;某男子rdquo; . 这个名字是不是让亲们
　　觉得冷酷之中又带有一点的帅气.特别是其中还
　　带有那淡淡的神秘感.哥一眼就喜欢上了这个名字.
　　ldquo;某男子,你个狗.老子帮你结婚你还飞老子.
　　有本事把喇叭接上 2 rdquo;
　　没想到刚刚飞的那两个人里面还有个是个有钱
　　的.刷的那两个喇叭,还是劲舞团里面最贵的那种
　　一个5块钱的.
　　哥内心深处闪过了一丝惊慌.口袋里只有8块钱了,
　　那8块还是明天三份快餐的钱.. 
　　
　　还好号上还有刚没刷完的9块多的喇叭
　　哥先把他接上,等下再想办法.
　　ldquo;本哥哥飞人从来都是不需要理由的.不服和本哥哥
　　带数字来 rdquo;
　　没想到那个人竟然没有声音了.看来也就是个冲
　　10块钱装**的货色.哥心里暗笑道 . 
　　
　　现在那个女的是越来越崇拜我了,一直追问着哥到底
　　住哪里.现实当中有没有女朋友啊.
　　哥淡然的说道.
　　ldquo;我住在XX花园小区(这个是本哥哥所在城市里最高
　　档的小区).父母在北京开酒店的,一年回来不了一次
　　家里就我一个人和3个保姆.女朋友上个月和我最好的
　　兄弟搞上了,我因为无聊所以才来上劲舞团的.
　　说得那女的左一声惊叹右一声惊叹的,还说不然她搬
　　过来和哥住一起吧,怕哥孤单.
　　哥赶紧推脱掉,说我过几天要到香港玩玩 .大约一个星期
　　什么什么的.
　　其实哥心中是想马上就见到他的.不过这几天都月底了,
　　工资都花光了,.出来要是连开房的钱都没有那就什么
　　都泡汤了,把她叫去我们那个工棚那是不可能的事情.
　　还是等下个月工头发工资了哥再叫她出来.
　　哥心中不由得无奈的想到. 
　　
　　之后.长夜漫漫.哥陪她跳了一个晚上的情歌.明天一早,哥
　　赶紧匆忙的和她留了电话.就回到工棚.换上了我那泛黄色的
　　迷彩服.吃了个2块钱的早餐就跑到工地了. 
　　
　　日复一日,
　　哥每天晚上对着镜子深情的望着
　　自己那唏嘘胡渣子.苍白而又幽柔
　　的脸庞.迷离之中带着一点忧郁的眼神.
　　哥心中不由自主自主的想起了那句古话.
　　ldquo;卿本佳人 奈何做贼rdquo;
　　哥有着金絮般的脸庞.却要屈居做着这被
　　人叫做城市建设者的工作 .不甘的情绪
　　慢慢的弥漫在哥英俊的脸庞上.不过很快就
　　消失了.毕竟哥不是一个善于表达自己情绪的
　　人,哥永远是那个温柔而又不爱说话的哥. 
　　
　　终于等到了发工资的日子.
　　哥憋屈了大半个月的欲望终于找到了突破口.
　　到了夜市里花了50块买了2件高档的衣服,哥
　　对于那些整天穿着rdquo;柒牌rdquo;lsquo;九牧王rsquo;的人是有些
　　鄙咦的.虽然衣冠楚楚.但谁知道背后又在做着
　　什么龌龊的事情.什么嫖宿***,70码.还不是
　　都是那些人做出来的事. 
　　
　　哥走进了一家理发店.虽然哥对于现在的发型很
　　满意.但哥是个追求完美的人.看着洗头时候那
　　慢慢从干净变成浑浊的水.哥无奈的笑了笑 
　　
　　ldquo;老婆.今天晚上有空没有?我刚从香港回来rdquo;
　　ldquo;哇,老公.你回来了阿.恩啊,我有空,你要和我
　　见面吗?rdquo;
　　ldquo;恩,晚上7点,你在XXX等我.我去接你.到了给你
　　打电话.rdquo;
　　一从工地回来.哥赶紧用自来水管洗了个澡.换上
　　了那身,哥最潮的衣服.走到马路边.挥了挥手.
　　一辆夏利牌TAXI利马就停在了哥的面前.哥很
　　喜欢这种潇洒的感觉.虽然不经常坐TAXI.但是
　　那种呼之即来.挥之即去的快感.哥是很迷恋的.
　　这种感觉不是你们这些每天挤公交.还要冒着
　　生命危险以及被rdquo;莫须有rdquo;成故意纵火罪的人能体
　　会得到的. 
　　
　　哥悠然的靠在了后座上. 突然..熟悉的rdquo;两只蝴蝶rdquo;
　　响起来了.哥懒洋洋的接起了电话.电话里面传来了
　　一阵激动地声音.
　　ldquo;老公阿. 我到这里了.你什么时候到呢rdquo;
　　ldquo;再过4分钟rdquo;
　　到了目的地.哥潇洒的付了车费.慵懒的走到了约定的
　　地点.哥一眼就认出了那个游戏里的rdquo;老婆rdquo;.不过应该
　　很快就要也变成现实了.哥心中传来了一阵阵酥痒.不过
　　哥依然装作那副漫不经心的样子.走到了她的面前.她也
　　认出我来了.
　　她竟然在路边大叫起来了rdquo;老公.我在这里helli helli helli .rdquo; 
　　
　　哥双手插着裤子后面那两个超大的口袋
　　静静的朝着那个女孩子走了过去.
　　在这一刻.哥冷酷而又忧郁的目光竟然
　　变得柔情似水.
　　四目对望.时间仿佛静止在了这个时刻.
　　我内心深处那XING爱的火花喷薄而出.
　　不过哥依然掩饰的很好.淡淡的对她笑了笑
　　ldquo;老婆?rdquo;
　　rdquo; 老公?rdquo;
　　狗血的对白,重演过无数次的桥段.
　　我们都羞涩的低下了头,相视一笑.菊花微痒. 
　　
　　那女的突然走过来 .挽起了我的手.
　　紧紧地夹在了胳膊中间.
　　哥硬又黑的手臂与她颈下7寸处若有若无的
　　触碰.害得哥心里一阵荡漾 . 
　　
　　ldquo;老公,我们去哪里玩呢rdquo;
　　ldquo;先在广场逛逛吧.今天家里的车被我朋友借走
　　了,我只能做TAXI过来了..晚上可能不能回家了
　　我那边太远了.rdquo;
　　ldquo;没事啊.不然老公晚上先和我住吧.反正我租的
　　那个房子也只有我一个人住rdquo; 
　　
　　哥心中顿然大喜.对自己那种潜移默化的佩服顿时
　　又多了几分.没想到这次找到了个.连开房费都能
　　省的helli helli helli  
　　
　　时间如梭,很快天就完全黑了下来,
　　哥也不能免俗的和她说到了最重点的问题helli 
　　ldquo;我们回去吧.这里也没什么好玩的了..rdquo;
　　随手拦下一辆出租车. 
　　
　　到了她的出租屋
　　开门以后 哥搂住了她的腰
　　上下摸索
　　她娇嗔道 唉哟 哥好坏
　　哥懒得跟她废话了
　　把她抱起放倒床上
　　完事以后
　　哥优雅地点了支烟
　　烟雾缭绕中 哥的眼神更加扑朔迷离
　　像哥这种拉风的男子
　　是任何女子都无法抗拒的
　　她把头靠在我的肩上
　　温柔地说
　　从今以后 我就是哥的人了helli .
　　哥依然沉默
　　像哥这种走到哪都被亿万少女迷恋的男人
　　是不轻易给别人承诺的
　　想起明早还要赶回工地搬砖
　　哥心里不禁一阵凄凉
　　哥抬起头45deg;望着窗外
　　这样眼泪不那么容易掉下来 
　　
　　红涨佳人 .一夜无眠
　　凌晨的时候 趁她还在熟睡
　　哥穿上了从夜市买来的那套最潮的衣服
　　踩着那双花20元从摊子上买来的高档匡威板鞋
　　蹑手蹑脚走出了她的出租屋
　　冷酷而沉默的哥
　　甚至没有回头看一眼还在熟睡的她
　　哥不是无情无义的人
　　哥只是被逼无奈
　　哥长着一张做鸭都能赚钱的脸
　　为什么不是富家子弟
　　为什么要做这被人称为城市建设者的工作
　　想到这里 哥的眼睛湿润了 
　　
　　在工地上搬了一天的砖
　　哥心力交瘁
　　又到了晚上
　　哥脱掉沾满泥浆的迷彩服
　　换上了最潮的非主流服装.
　　昏黄的路灯下
　　有一道孤寂的身影钻进了小巷深处的一家网吧
　　留下的只有寂寞的背影
　　没错,那还是哥
　　一上秋秋
　　哥昨晚睡过的那个女人的头像一直在闪动着
　　哥潇洒地双击鼠标点开对话框
　　lsquo;老公，早上醒来你怎么不见了？我找不到你，55555rsquo;
　　哥嘴角轻轻上扬
　　一道似有若无的笑容在脸上荡漾
　　看来哥的英俊潇洒
　　已经让她深陷其中无法自拔了
　　哥给她回了条信息
　　lsquo;昨晚朋友叫我去KTV了，看你睡得正香就没吵醒你rsquo;
　　她迅速地回了条信息
　　lsquo;老公原来你在哇，我被那个叫lsquo;女圭女圭rsquo;欺负了，5555，快来帮我 21mdash;7prime;
　　哥不禁火冒三丈
　　哥在AU里也算是有头有脸的人物，居然敢欺负我的女人
　　哥马上点开劲舞团
　　进去后立刻开房间
　　lsquo;某男子点名教育女圭女圭，TMD，跪darr;，喝XX，舔XXrsquo;
　　在劲舞团里 ，踩人的时候取一个霸气的房间名字是很有必要的
　　这世道就是善的怕恶的，恶的怕横的，横的怕不要命的
　　不一会儿房间里站满了看热闹的人
　　哥嘴角再次泛起了一丝似有若无的笑容
　　哥还是很迷恋这种万众敬仰的感觉的
　　哥点燃一根烟，甩了甩头发 
　　
　　那个叫lsquo;女圭女圭rsquo;的终于进来了
　　lsquo;接？rsquo; 哥简单而冷酷地打出了这个字
　　lsquo;等等我儿子来rsquo;
　　lsquo;速度，谢谢rsquo;
　　不久后，她的儿子来了
　　哥甩出简单的一句话，F1，谢谢。
　　当哥按下F1的时候才发现大事不妙，哥一时情急居然忘了开外挂
　　三十六计，ALT+ F4先 
　　终于做好准备工作，再回来，进到房间先大骂一通，什么难听就拣什么骂
　　总之要让大家看到哥的愤怒，哥是被卡掉的~~~绝对不是因为没开外挂自己闪的
　　DJ已经转到了她儿子手中，他把哥踢出了房间
　　哥遇到这种事向来都是蛋定而不鸡动
　　哥马上重新开了一个房间
　　lsquo;某男子点灭女圭女圭及其狗崽子，TMD，跪darr;，喝XX，舔XX，踢爷有GC？rsquo;
　　不一会儿，房间里人满为患
　　毫无疑问，哥到哪都是焦点 
　　
　　女圭女圭和她儿子进来了
　　哥不由分说把他俩踢出了房间
　　特步，飞一般的感觉
　　哥还是很享受这种踢人的快感的
　　他们再次进来
　　那男的说 换普通，自由挂多
　　哥不由地心里一阵虚惊，菊花一紧
　　哥的外挂是跳不了普通模式的
　　但是哥很快就淡定地说，这是哥的地盘，哥说了算，不敢接就滚出去
　　F1后，哥镇定地操纵着外挂
　　哥万万没有想到，那厮是个卡P高手
　　不到2分钟，就超过哥10万多分
　　哥停下来，淡定地说，关掉你的高科技，谢谢
　　一局跳完后，哥甩出一句话，给你一根网线，你就能把13装得活灵活现
　　然后把他再次踢出了房间 
　　
　　在围观群众的欢呼声中，哥仿佛看见房间里的那些MM双眼已经变成了桃心状(哇，好有男子气概哦，我喜欢~~)
　　哥正在幸福地流着哈喇子，突然看见屏幕上方的喇叭闪过一行字
　　某男子，跳不赢劳资就说劳资开挂，早知道你这么没出息当年我就应该忍住那两秒钟的快感把你射在墙上
　　NND，这么多MM看见了，多没面子。
　　口袋里还有三十块，想了又想，这个场子怎么都要找回来，未来一个礼拜的生活费等未来再说吧。
　　咬咬牙，忍着那割肉般的痛，冲了30块的M币。
　　女圭女圭给劳资跪darr;，喝XX，添XX，一阵乱喊。
　　这世道就是善的怕恶的，恶的怕横的，横的怕不要命的~~
　　哥生活费都不要了，还怕毛啊 
　　
　　眼看M币越来越少，老婆总算是说了句话了，算了啊，老公，表跟他们这些没素质的人计较啦。
　　哥菊花再次一紧，总算找到个台阶下
　　嗯，哥好歹也是个受过高等教育的文明人~~~~跟这些垃圾计较还真是有失身份
　　深夜 哥肚子饿了
　　摸摸口袋，才想起兜里剩的那三十块钱早拿来刷喇叭了
　　哥默默地走到网吧的洗手间
　　看四周没人的时候，拧开了水龙头猛灌了几大口自来水
　　喝饱了之后，哥打了个响亮的饱嗝
　　看见镜子里哥颓废而英俊的脸
　　哥无奈地笑了笑,心中默念道.
　　ldquo;我本善良.奈何生活逼良为娼.rdquo; 
　　
　　日复一日 时光如梭 白驹过隙
　　直到有一天 老婆在秋秋上娇羞地对哥说
　　老公，我怀孕了，怎么办哇，55555
　　顺便说一句
　　像哥这样会享受生活的人，做AI向来都是不屑于戴T的
　　常在河边走，哪有不湿鞋
　　哥无奈地笑了笑
　　把她的秋秋拖到了黑名单
　　相爱不如相忘于江湖
　　人生若只如初见,何事秋风悲画扇.
　　奈何天意弄人.
　　一般像哥这种职业的劲舞团玩家,都是有这种觉悟的.
　　哥眼角.有泪滑过. 
　　
　　哥是个有品位的人
　　哥还是很迷恋劲舞团这款高端游戏的
　　但某男子那个号
　　是绝不能再上了
　　哥重新申请了个号
　　初吻給了煙
　　这样带有点忧郁带有点迷离的名字
　　在劲舞团里是很受MM欢迎的
　　只可惜
　　在劲舞团里买一套衣服，至少要100多块
　　像哥这种劲舞团职业玩家，是不屑于穿系统送的lsquo;农民装rsquo;的
　　但是这个月的工资已经花完了
　　哥的眼睛再次湿润了 
　　
　　夜深人静月黑风高的时候
　　一道孤寂的身影钻进了工地
　　没错，那还是哥
　　在工地转悠了一圈
　　捡了几根钢管
　　如是三个晚上
　　哥颤抖的手指从废品店老板手中接过那150元卖废铁的钱
　　再次钻进了小巷深处的网吧
　　熟悉的走到了吧台的位置
　　拿出了150元人民币
　　淡淡的说了句 ldquo;冲MBrdquo;
　　找了一个最靠近空调的位置，享受着冷气吹过时的舒坦
　　买了套最新出的衣服，配上最贵的表情，一身衣着光鲜
　　哥唇角上扬，露出了YIN荡的微笑
　　突然觉得鼻子有点痒
　　抠出一坨黑绿色物体
　　哥潇洒地一弹，依然粘在手指上
　　再弹，依然粘住了
　　哥无奈地笑了笑，把手指伸进了嘴里
　　微咸 
　　
　　进入劲舞团，开房间
　　ldquo;寻7，本哥哥的真心只属于我爱的人rdquo;
　　不出哥所料，不一会儿，房间里人满为患
　　lsquo;帅哥，偶能聘么？rsquo;
　　lsquo;可以,视频先验货.加我秋秋XXXXXXrsquo;
　　狗血的对白,重演过无数次的桥段.
　　哥嘴角一丝若有若无的微笑，菊花微痒 
　　
　　昏黄的路灯下
　　幽暗的小巷里
　　一道孤寂的身影
　　手指夹着半截劣质烟
　　没错，那还是哥
　　哥抽的是烟，吐出来的是寂寞 
　　
　　喧嚣的网吧，浑浊的空气
　　AOC14寸CRT显示屏前
　　一道颓废而又英俊的背影
　　用F6 F7 F8熟练潇洒地操纵着外挂
　　没错，那还是哥
　　哥玩的不是劲舞团，是寂寞
   ...</description>
   <pubDate>2009.08.30 22:08:38</pubDate>
   <guid>http://hellophper.com/htm/4/374.html</guid>
  </item><item>
   <title>jsp 调用音乐文件代码</title>
   <link>http://hellophper.com/htm/4/373.html</link>
	 
   <description>lt;%@ page language=quot;javaquot; import=quot;java.util.*quot; pageEncoding=quot;UTF-8quot;%gt;
lt;%@ taglib prefix=quot;squot; uri=quot;/struts-tagsquot;%gt;
lt;!DOCTYPE HTML PUBLIC quot;-//W3C//DTD HTML 4.01 Transitional//ENquot;gt;
lt;htmlgt;
  lt;headgt;

    lt;titlegt;Loginlt;/titlegt;
    lt;meta http-equiv=quot;pragmaquot; content=quot;no-cachequot;gt;
    lt;meta http-equiv=quot;cache-controlquot; content=quot;no-cachequot;gt;
    lt;meta http-equiv=quot;expiresquot; content=quot;0quot;gt;
    lt;meta http-equiv=quot;keywordsquot; content=quot;keyword1,keyword2,keyword3quot;gt;
    lt;meta http-equiv=quot;descriptionquot; content=quot;This is my pagequot;gt;
    lt;!--
  lt;link rel=quot;stylesheetquot; type=quot;text/cssquot; href=quot;styles.cssquot;gt;
  --gt;
  lt;/headgt;
  lt;bodygt;
    
    
lt;object id=quot;MediaPlayer1quot; width=quot;460quot; height=quot;68quot;
      classid=quot;CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95quot;
      codebase=quot;http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715quot;
      align=quot;baselinequot; border=quot;0quot;
      standby=quot;Loading     Microsoft     Windows     Media     Player     components...quot;
      type=quot;application/x-oleobjectquot;gt;
      lt;param name=quot;Volumequot; value=quot;-2500quot;gt;
      lt;!-- 音量大小,负值表示是当前音量的减值,值自动会取绝对值,最大为0,最小为-9640 --gt;
      lt;param name=quot;invokeURLsquot; value=quot;0quot;gt;
      lt;param name=quot;FileNamequot; value=quot;2.wmaquot;     gt;
      lt;param name=quot;ShowControlsquot; value=quot;1quot;gt;
      lt;param name=quot;ShowPositionControlsquot; value=quot;-1quot;gt;
      lt;param name=quot;ShowAudioControlsquot; value=quot;1quot;gt;
      lt;param name=quot;ShowTrackerquot; value=quot;1quot;gt;
      lt;param name=quot;ShowDisplayquot; value=quot;0quot;gt;
      lt;!-- 显示节目信息,比如版权等 --gt;
      lt;param name=quot;ShowStatusBarquot; value=quot;1quot;gt;
      lt;param name=quot;AutoSizequot; value=quot;0quot;gt;
      lt;param name=quot;ShowGotoBarquot; value=quot;0quot;gt;
      lt;param name=quot;ShowCaptioningquot; value=quot;0quot;gt;
      lt;param name=quot;AutoStartquot; value=quot;-1quot;gt;lt;!-- 是否自动开始 --gt;
      lt;param name=quot;PlayCountquot; value=quot;0quot;gt;
      lt;!-- 重复播放次数,0为始终重复 --gt;
      lt;param name=quot;AnimationAtStartquot; value=quot;0quot;gt;
      lt;param name=quot;TransparentAtStartquot; value=quot;0quot;gt;
      lt;param name=quot;AllowScanquot; value=quot;0quot;gt;
      lt;param name=quot;EnableContextMenuquot; value=quot;1quot;gt;
      lt;param name=quot;ClickToPlayquot; value=quot;0quot;gt;
      lt;param name=quot;DefaultFramequot; value=quot;datawindowquot;gt;
      lt;param name=quot;BufferingTimequot; value=quot;3quot; gt;
      lt;param name=quot;CurrentPositionquot; value=quot;0quot; gt;
lt;!-- 当前播放进度 -1 表示不变,0表示开头 单位是秒,比如10表示从第10秒处开始播放,值必须是-1.0或大于等于0 --gt;
      lt;embed id=quot;MediaPlayer2quot; src=quot; quot; +value+ quot;quot;     align=quot;baselinequot;
        border=quot;0quot; width=quot;468quot; height=quot;68quot; type=quot;application/x-mplayer2quot;
        pluginspage=quot;http://www.microsoft.com/isapi/redir.dll?prd=windowsam am sbp=mediaplayeram am ar=mediaam am sba=pluginam am quot;
        name=quot;MediaPlayerquot; showcontrols=quot;1quot; showpositioncontrols=quot;0quot;
        showaudiocontrols=quot;1quot; showtracker=quot;1quot; showdisplay=quot;0quot;
        showstatusbar=quot;1quot; autosize=quot;0quot; showgotobar=quot;0quot; showcaptioning=quot;0quot;
        autostart=quot;1quot; autorewind=quot;0quot; animationatstart=quot;0quot;
        transparentatstart=quot;0quot; allowscan=quot;1quot; enablecontextmenu=quot;1quot;
        clicktoplay=quot;0quot; defaultframe=quot;datawindowquot; invokeurls=quot;0quot;gt;
      lt;/embedgt;
    lt;/objectgt;
  
  lt;/bodygt;
lt;/htmlgt;
   ...</description>
   <pubDate>2009.07.06 19:07:44</pubDate>
   <guid>http://hellophper.com/htm/4/373.html</guid>
  </item><item>
   <title>你对PHP6认识多少？</title>
   <link>http://hellophper.com/htm/4/372.html</link>
	 
   <description>去年在巴黎举行的php开发者大会中，PHP6开发的消息开始流传开来，  
于PHP大会讨论的PHP6，将有很大幅度的变化，但这只是草案阶段，  
并不代表所有会议的机率都会随着PHP6的发布而包含记录中所有的变更  
也就是说，在发布PHP6之前，还是会有异动的情形，但是可以确定的是  
下面所列的数项变化，将会随着PHP6一同面世（当然不是百分百乐，）  
赶快来看看这些新特性吧  

1.支持Unicode  
支持Unicode是有其必然，虽然Unicode占用较多的空间，但Unicode带来  
的便利性，远超过占用空间的缺点，尤其在国际化的今天，硬件设备越来  
越强大，网速也大幅度的提升，这么一点小小的缺点是可以忽略的。另外  
一点，PHP也可以在.ini文件中设定是否开启支持Unicode，决定权在你自己，  
这是一个不错的点子，关掉Unicode的支持，PHP的性能并不会有大幅度的  
提升，主要的影响在于需要引用字符串的函数。  

2.Register  Globals  将被移除  
这是一个重要的决定，说多新进的PHP开发者会觉得Register  Globals满  
方便的，但是却忽略了Register  Globals会带来程序上安全性的隐患，大  
多数的主机上此项功能是关闭的，印象中从PHP4.3.x版开始时，此项默认  
设置值即是关闭状态，PHP6正式移除Register  Globals也代表着如果程序  
是由PHP3时代的产物，将完全无法使用，除了改写一途外，别无他法。相  
信现在的PHP世界里，仍使用PHP3时代所产生的程序应该是少之又少。  

3.Magic  Quotes  将消失  
Magic  Quotes主要是自动转义需要转义的字符，此项功能移除叶符合大多  
数PHP开发者的心声。  

4.Safe  Mode  取消  
老实说，这个模式不知道哪里不好，取消就取消吧，反正也用不到  

5.var  别名为  public
在类中的var声明变成public的别名，相信是为了兼容PHP5而作的决定，  
PHP6现在也可以称作为OO语言了。  

6.通过引用返回将出错  
现在透过引用返回编译器将会报错  例如$a  =am   new  b()、function  am c()，  
OO语言默认就是引用，所以不需要再使用am 了。  

7.zend.ze1  compatbility  mode  将被移去  
zend.ze1相容模式将被移去，PHP5是为兼容旧有PHP4，所以在.ini中可选择是否  
开启相容模式，原因在于PHP5使用的是第二代解析引擎，但是相容模式并不是百  
分之百能解析PHP4语法，所以旧时代的产物，移除。  

8.Freetype  1  and  GD  1  support  将不见  
这两个是很久的Libs，所以不再支持，GD1早已被现在的GD2取代了。  

9.dl()  被移到  SAPI  中  
dl()主要是让设计师加载extension  Libs，现在被移到  SAPI  中  

10.Register  Long  Array  去除  
从PHP5起默认是关闭，再PHP6中正式移除。  

11.一些Extension的变更  
例如  XMLReader  和  XMLWriter  将不再是以Extension的方式出现，他们将被移入  
到PHP的核心之中，并且默认是开启，ereg  extension将被放入PECL，代表着它将  
被移出PHP核心，这也是为了让路给新的正则表达式extension，  
此外，Fileinfo  extension  也将被导入PHP的核心之中。  

12.APC将被导入核心  
这是一个提高PHP性能的功能，现在它将被放入PHP核心中，并且可以选择是否启用APC  

13.告别ASP风格的起始标签  
原来是为了取悦ASP开发者转向使用PHP，现今已经不再需要这种做法了，  

最后，别期望PHP6的性能可以全面超过PHP5，有可能的是PHP6的执行效率会比  
PHP5还要来的慢的，但是可以预期的是，PHP开发小组将会努力的完善PHP5，超  
越PHP5。  
那么，对PHP6有兴趣的朋友现在可以到PHP官方网站上下载，试试这些功能是否真的已经  
在PHP6中体现出来了，下载地址http://snaps.php.net ...</description>
   <pubDate>2009.05.06 22:05:23</pubDate>
   <guid>http://hellophper.com/htm/4/372.html</guid>
  </item><item>
   <title>java学习（10）oracle创建表</title>
   <link>http://hellophper.com/htm/4/371.html</link>
	 
   <description>oracle创建表和mysql有很大的区别，如oracle没有自动增加的字段，并且在设置key字段也是不一样的
mysql：
CREATE TABLE `lw_bigsort` (
   `id` int(11) NOT NULL auto_increment,
   `name` varchar(250) NOT NULL,
   UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM   DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;
  
oracle：
create table TEST
(
   ID     INTEGER not null,
   NAME VARCHAR2(250) not null,
primary key (ID)
) ...</description>
   <pubDate>2009.05.03 22:05:02</pubDate>
   <guid>http://hellophper.com/htm/4/371.html</guid>
  </item><item>
   <title>据说今天是css裸奔节</title>
   <link>http://hellophper.com/htm/4/369.html</link>
	 
   <description>尝试一下 ...</description>
   <pubDate>2009.04.08 19:04:27</pubDate>
   <guid>http://hellophper.com/htm/4/369.html</guid>
  </item><item>
   <title>java学习-GUI（9） </title>
   <link>http://hellophper.com/htm/4/368.html</link>
	 
   <description>在php中很少涉及GUI，资料也非常少，官方有一些说明
http://gtk.php.net/
java
public class TestFrame implements ActionListener {
  /**
   * @param args
   */
  Frame f = new Frame(quot;testquot;);
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    TestFrame tf = new TestFrame();
    tf.init();
  }
  public void init() {
    Button btn = new Button(quot;okquot;);
    f.add(btn);
    btn.addActionListener(this);
    f.setSize(300, 300);
    f.setVisible(true);
    f.addWindowListener(new MyWindowListener());
  }
  public void actionPerformed(ActionEvent e) {
    //f.doLayout();
    //System.exit(0);
  }
}
import java.awt.*;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
public class MyWindowListener implements WindowListener{
  
  public void windowActivated(WindowEvent e) {
    // TODO Auto-generated method stub
    
  }
  public void windowClosed(WindowEvent e) {
    // TODO Auto-generated method stub
    
  }
  public void windowClosing(WindowEvent e) {
    // TODO Auto-generated method stub
    e.getWindow().setVisible(false);
    ((Window)e.getComponent()).dispose();
    System.exit(0);
  }
  public void windowDeactivated(WindowEvent e) {
    // TODO Auto-generated method stub
    
  }
  public void windowDeiconified(WindowEvent e) {
    // TODO Auto-generated method stub
    
  }
  public void windowIconified(WindowEvent e) {
    // TODO Auto-generated method stub
    
  }
  public void windowOpened(WindowEvent e) {
    // TODO Auto-generated method stub
    
  }
}
   ...</description>
   <pubDate>2009.05.03 22:05:12</pubDate>
   <guid>http://hellophper.com/htm/4/368.html</guid>
  </item><item>
   <title>java学习-读写文件&调用进程（8） </title>
   <link>http://hellophper.com/htm/4/367.html</link>
	 
   <description>关于对txt文件的读写java用起来真的是十分的麻烦，很多代码现在也不是很理解
import java.util.Properties;
import java.io.*;
public class PropertiesFile {
public static void main(String [] args){
  Properties settings = new Properties();
  try{
  settings.load(new FileInputStream(quot;count.txtquot;));
  }catch(Exception e){
    settings.setProperty(quot;countquot;,String.valueOf(0));
  }
  int c = Integer.parseInt(settings.getProperty(quot;countquot;))+1;
  System.out.print(quot;这是第：quot; + c+quot;运行quot;);
  settings.setProperty(quot;countquot;, new Integer(c).toString());
  try{
  settings.store(new FileOutputStream(quot;count.txtquot;),quot;Program is used:quot;);
  }catch(Exception e){
    e.printStackTrace();
  }
}
}
  
php对文件的读写
fopen      
fread
       fwrite
       fclose
关于调用windows中的进程，似乎php很难做到，也许是我不知道，java简单调用文本进程
import java.util.*;
public class lesson11 {
  public static void main(String[] args) {
    Properties sp = System.getProperties();
    Enumeration e = sp.propertyNames();
    while (e.hasMoreElements()) {
      String key = (String) e.nextElement();
      System.out.println(key + quot;=quot; + sp.getProperty(key));
    }
      Process p = null;
      try{
      p = Runtime.getRuntime (). exec (quot;notepad . exe   count . txtquot;);
      Thread.sleep(5000);
      p.destroy();
      //System.exit(0);
      }catch(Exception ex){
        ex.printStackTrace();
      }
    
  }
}
   ...</description>
   <pubDate>2009.03.31 01:03:01</pubDate>
   <guid>http://hellophper.com/htm/4/367.html</guid>
  </item><item>
   <title>java学习-数组排序（7） </title>
   <link>http://hellophper.com/htm/4/365.html</link>
	 
   <description>java实现输入的数字相加，在php中就是一个foreach
import java.io.IOException;
import java.util.*;
public class lesson8 {
public static void main(String [] args)
{
  int b=0;
  Vector v = new Vector();
  System.out.print(quot;please enter number:quot;);
  while(true)
  {
    try {
      b = System.in.read();
    } catch (IOException e1) {

      e1.printStackTrace();
    }
    if()
      break;
    else
    {
    
      v.addElement(new Integer(num));
    }
  }
  int sum = 0;
  Enumeration e = v.elements();
  while(e.hasMoreElements())
  {
    Integer intObj = (Integer)e.nextElement();
    sum+=intObj.intValue();
  }
  System.out.print(sum);
}
}
另一个是实现数组的顺序排序，在php中可以实现多种排序，并且比java简单asort
import java.util.*;
public class lesson9 {
  public static void main(String [] args)
  {
    ArrayList al = new ArrayList();
    al.add(new Integer(1));
    al.add(new Integer(13));
    al.add(new Integer(2));
    System.out.print(al.toString());
    Collections.sort(al);
    System.out.print(al.toString());
  }
}
   ...</description>
   <pubDate>2009.03.30 07:03:49</pubDate>
   <guid>http://hellophper.com/htm/4/365.html</guid>
  </item><item>
   <title>java学习-手册使用&字符串对比（6） </title>
   <link>http://hellophper.com/htm/4/364.html</link>
	 
   <description>终于学会怎么使用java手册了，先要查找类，然后在使用ctrl+f查找所要查找的方法
php的手册可以直接查找着这点使用起来十分方便
关于字符串对比，php中可以直接使用等号（==），而java中竟然要使用equals进行对比，使用==无法得到正确的结果

public class lesson7 {
public static void main(String [] args)
{
byte [] buf = new byte[1024];
String strInfo = null;
int pos = 0;
int ch = 0;
System.out.print(quot;please enter info:quot;);
while(true)
{
  try
  {
    ch = System.in.read();
  }catch(Exception e){e.printStackTrace();}
  switch(ch)
  {

  break;

  strInfo = new String(buf,0,pos);
  if(strInfo.equals(quot;byequot;))
  {
    return;
  }else{
    System.out.print(strInfo);
    pos=0;
    break;
  }
  default:
    buf[pos++] = (byte)ch;
  }
}
}
}
   ...</description>
   <pubDate>2009.03.30 00:03:48</pubDate>
   <guid>http://hellophper.com/htm/4/364.html</guid>
  </item><item>
   <title>java学习-进程（5） </title>
   <link>http://hellophper.com/htm/4/363.html</link>
	 
   <description>在php中很少接触到有关进程的问题，以前在phpx上看到过一篇关于php进程的问题，隐约记得php是单线程
最佳学习java中接触到多线程的问题
接口 implements Runnable
继承 extends Thread
class Q
{
  String name = quot;unknowquot;;
  String sex = quot;unknowquot;;
  boolean bFull = false;
  
  public synchronized void put(String name,String sex)
  {
    if(bFull)
      try{
        wait();
      }catch(Exception e){
        
      }
      this.name = name;
      try{
        Thread.sleep(1);
      }catch(Exception e){
        
      }
      this.sex = sex;
      bFull = true;
      notify();
  }
  
  public synchronized void get()
  {
    if(!bFull)
      try{
        wait();
      }catch(Exception e){
        
      }
      System.out.print(name);
      System.out.println(quot;:quot;+sex);
      bFull=false;
      notify();
  }
}

class Consumer implements Runnable{
  Q q;
  public Consumer(Q q)
  {
    this.q=q;
  }
  public void run()
  {
    while(true){
      q.get();
    }
  }
}
class Producer implements Runnable{
  Q q;
  public Producer(Q q)
  {
    this.q=q;
  }
  public void run()
  {
    int i=0;
    while(true)
    {
      if(i==0)
        q.put(quot;zhangsanquot;, quot;malequot;);
      else
        q.put(quot;lisiquot;, quot;femalequot;);
      i=(i+1)%2;
    }
  }
}
public class lesson extends Thread
{
  public static void main(String [] args)
  {
    Q q = new Q();
    new Thread(new Producer(q)).start();
    new Thread(new Consumer(q)).start();
  }
}
   ...</description>
   <pubDate>2009.03.29 20:03:26</pubDate>
   <guid>http://hellophper.com/htm/4/363.html</guid>
  </item></channel>
</rss>