05 2013 档案
摘要:php下载文件,比如txt文件。出现的效果就是,弹出浏览器自带的下载框,出现另存为操作。有时候会出现内存溢出和超时的现象。超时的话,设置set_time_limit(0);出现内存溢出的话,有可能是因为从数据库中取出的数据量太大导致的。如果是从文件中读取的话,出现内存溢出的话,就是代码读取方式不正确,调用files或者filegetcontens才会如果是fopen的话,就给一个缓冲区,固定大小,读入然后写入,不会出现内存溢出的情况。如代码:if (file_exists($file_path)) { //如果文件存在 $handle = fopen($file_path, "r&q
阅读全文
摘要:file_get_contentsfpassthrufgetsfilerequirereadfilePHP1stringfile_get_contents(string$filename[,bool$use_include_path=false[,resource$context[,int$offset=-1[,int$maxlen]]]])file_get_contents() is the preferred way to read the contents of a file into a string. It will use memory mapping techniques if
阅读全文
摘要:由于现在的浏览器已经可以识别txt文档格式,如果只给txt文档做一个文字链接的话,点击后只是打开一个新窗口显示txt文件的内容,并不能实现点击下载的目的。当然这个问题的解决办法也可以是将txt文件改名为浏览器不认识的文件(比如rar),这样的话,由于浏览器不能识别rar类型的文件,只能让用户下载了。还有一种办法,就是利用代码通过header设置文档的格式来实现点击下载的目的。PHP代码如下:===========================================================$filename = '/path/'.$_GET['file
阅读全文
摘要:C++内置的数组支持容器的机制,但是它不支持容器抽象的语义。要解决此问题我们自己实现这样的类。在标准C++中,用容器向量(vector)实现。容器向量也是一个类模板。标准库vector类型使用需要的头文件:#include <vector>。vector 是一个类模板。不是一种数据类型,vector<int>是一种数据类型。Vector的存储空间是连续的,list不是连续存储的。一、 定义和初始化vector< typeName > v1; //默认v1为空,故下面的赋值是错误的v1[0]=5;vector<typeName>v2(v1); 或v
阅读全文
摘要:这里介绍两个php采集能用到的好工具。一个是Snoopy,一个是simple_html_dom。采集还有很多方式(其实本质就2-3种,其他的都是衍生的),php自带了几个方法也能直接进行采集。但是,出于把懒惰进行到底的精神。我们还是可以通过这两个工具,让采集变得更简单。网上有不少介绍Snoopy的,下面是别人翻译的Snoopy的SDK//////////////////////////////////////////////////////////////Snoopy是一个php类,用来模拟浏览器的功能,可以获取网页内容,发送表单。Snoopy的一些特点:1抓取网页的内容 fetch2 抓取网
阅读全文
摘要:mongodb由C++写就,其名字来自humongous这个单词的中间部分,从名字可见其野心所在就是海量数据的处理。关于它的一个最简洁描述为:scalable, high-performance, open source, schema-free, document-oriented database。MongoDB的主要目标是在键/值存储方式(提供了高性能和高度伸缩性)以及传统的RDBMS系统(丰富的功能)架起一座桥梁,集两者的优势于一身。安装及使用:首先在Ubuntu上安装MongoDB。下载MongoDB, 现在最新的生产版本1.7.01. 解压文件.$ tar -xvf mongodb
阅读全文
摘要:<?php/*** PHP操作MongoDB学习笔记*///*************************//** 连接MongoDB数据库 **////*************************//格式=>(“mongodb://用户名:密码 @地址:端口/默认指定数据库”,参数)$conn= newMongo();//可以简写为//$conn=new Mongo(); #连接本地主机,默认端口.//$conn=new Mongo(“172.21.15.69″); #连接远程主机//$conn=new Mongo(“xiaocai.loc:10086″); #连接指定
阅读全文
摘要:一、MongoDB简介MongoDB (名称来自"humongous") 是一个可扩展的、高性能、开源、模式自由、面向文档的数据库,集文档数据库、键值对存储和关系型数据库的优点于一身。官方站点:http://www.mongodb.org/,MongoDB特点:•面向文档存储(类JSON数据模式简单而强大)•动态查询•全索引支持,扩展到内部对象和内嵌数组•查询记录分析•快速,就地更新•高效存储二进制大对象 (比如照片和视频)•复制和故障切换支持•Auto-Sharding自动分片支持云级扩展性•MapReduce 支持复杂聚合•商业支持,培训和咨询二、安装MongoDB安装
阅读全文
摘要:From:http://hsl46346.blog.163.com/blog/static/17764050201062074955358/From:CentOS 5.4 下gcc和gcc-c++的光盘 rpm 安装方式From:centos 安装 javaCentOs是linux系统的一种,只要该操作系统安装了gcc软件包,就可以在linux操作系统中进行C语言程序设计。CentOS安装光盘中带有gcc的安装包。笔者的操作系统是win2003,通过虚拟机安装了CentOS 5.2。CentOS默认安装之后,是没有安装gcc开发包的,需要手动安装,步骤如下:1 打开VMWare界面,选择菜单V
阅读全文
摘要:time()在PHP中是得到一个数字,这个数字表示从1970-01-01到现在共走了多少秒,很奇怪吧不过这样方便计算,要找出前一天的时间就是 time()-60*60*24;要找出前一年的时间就是 time()*60*60*24*365那么如何把这个数字换成日期格式呢,就要用到date函数了$t=time();echo date("Y-m-d H:i:s",$t);第一个参数的格式分别表示:a - "am" 或是 "pm"A - "AM" 或是 "PM"d - 几日,二位数字,若不足二位则前面补
阅读全文
摘要:以前用svn也紧紧是在终端上svn checkout ooxx下载源码然后本地编译(比如eva)。那些只需要人家找网络上告诉你URL地址或者直接告诉你完整版的svn checkout命令,确认机器能上网,然后将svn checkout ooxx命令复制到终端上按回车开始下载就万事大吉。 搭环境那哥们测试客户端的时候也只是找windows下用svn客户端工具TortoiseSVN测试能正常使用就成,至于像我等身为linux下的少数派用户,咨询他如何通过终端命令读写svn,哥们丢下一句话就落荒而逃:“linux我不熟,你自己找资料慢慢试吧!”。才一开始用问题就来 了,以前用svn找网络上下东西都没
阅读全文
摘要:1、unset()函数只能在变量值占用内存空间超过256字节时才会释放内存空间。2、只有当指向该变量的所有变量(如引用变量)都被销毁后,才会释放内存。PHP的unset()函数用来清除、销毁变量,不用的变量,我们可以用unset()将它销毁。但是某些时候,用unset()却无法达到销毁变量占用的内存!代码如下:for ( $i = 1; $i < 100; $i++ ) {$str = str_repeat('01234567', $i);$a = memory_get_usage();unset($str);$b = memory_get_usage();echo &q
阅读全文
摘要:fsockopen函数能够运用,首先要开启php.ini中的allow_url_open=on;fsockopen是对socket客户端代码的封装,该函数中封装了socket_create,socket_connect。服务器端代码:server.php<?phperror_reporting(E_ALL);set_time_limit(0);$address = '127.0.0.1';$port = 10008;//创建端口if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) { e
阅读全文
摘要:服务器端脚本:server.php<?phperror_reporting(E_ALL);set_time_limit(0);$address = '127.0.0.1';$port = 10007;//创建端口if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) { echo "socket_create() failed:reason:" . socket_strerror(socket_last_error()) . "\n";}//绑定if
阅读全文
摘要:服务器端:ServerSocketDemo.javapackage com.tcp;import java.io.DataInputStream;import java.io.DataOutputStream;import java.net.ServerSocket;import java.net.Socket;public class ServerSocketDemo { /** * @param args */ public static void main(String[] args) { try { ServerSocket serverSocket = null; //创建...
阅读全文
摘要:该类可以通过new关键字创建其实例对象,其父类是抽象类Writer。简单实例:package com.FileInfo;import java.io.File;import java.io.FileReader;import java.io.FileWriter;public class FileWriteExample { /** * @param args */ public static void main(String[] args) { File file = new File("F://test2.txt"); //创建指定文件的File类型对象 try { i
阅读全文
摘要:该类可以通过new关键字创建其实例对象,该类的父类是抽象类Reader。简单实例:package com.FileInfo;import java.io.File;import java.io.FileReader;public class FileInAndOutChar { /** * @param args */ public static void main(String[] args) { //定义指定磁盘文件的File对象 File file = new File("F:/", "test.txt"); try { if (!file.exi
阅读全文
摘要:字符输入输出流与字节输入输出流有相同的功能,但是传送数据的方式不一样。字节流以字节为单位才传送数据,可以是任何类型的数据,例如文本、音频、视频、图片等。字符流以字符为单位传送数据,只能传送文本类型的数据。使用字符输入输出流的好处是,当读取中文的时候,不会出现乱码问题,而使用字节输入输出流时,却不能保证。
阅读全文
摘要:可以通过new关键字来创建实例对象。简单实例:package com.FileInfo;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;public class FileCreate { /** * @param args */ public static void main(String[] args) { File file = new File("F:/", "test.txt"); //创建文件对象 try { if (!file
阅读全文
摘要:该类是抽象类,不能通过new关键字来创建其实例对象。下面通过输出流控制台来看看该类的简单运用。package com.FileInfo;import java.io.IOException;import java.io.OutputStream;public class OutputMessage { /** * @param args */ public static void main(String[] args) { OutputStream out = System.out; try { byte[] bte = "本例使用OutputStream流,在控制台输出字符串...
阅读全文
摘要:InputStream是抽象类,不能通过new关键字来创建该实例对象,只能通过该类的子类创建该实例对象。下面通过控制台获取用户输入的数据来看看该类的简单运用package com.FileInfo;import java.io.IOException;import java.io.InputStream;public class InputMessage { /** * @param args */ public static void main(String[] args) { //定义InputStream对象 InputStream is = System.in; try ...
阅读全文
摘要:介绍如何在CentOs6.2下面使用YUM配置安装LAMP环境,一些兄弟也很喜欢使用编译的安装方法,个人觉得如果不是对服务器做定制,用yum安装稳定简单,何必去download&make&make install呢。Step1. 为centos配置rpmforge及epel源。centos官方的源其实也够用,不过像php的一些扩展如php-mcrypt在官方源中并没有。rpmforge源可以在 http://pkgs.repoforge.org/rpmforge-release/中下载安装,名为rpmforge- release-*.i686.rpm 或 rpmforge-re
阅读全文
摘要:一路编译安装LAMP以来出现了好多好多问题,Linux(Ubuntu),MySQL,Apache都正常安装了,而在安装PHP之前,安装GD库时又出现了一个问题,不过还好解决了,下面是报错信息gd_png.c:16:53: error: png.h: No such file or directorygd_png.c:47: error: expected specifier-qualifier-list before ‘jmp_buf’gd_png.c:54: error: expected ‘)’ before ‘png_ptr’gd_png.c:82: error: expected ‘)
阅读全文
摘要:$a = '';echo '1.-----------'.($a == '').'<br>';echo '2.-----------'.($a == null).'<br>';echo '3.-----------'.($a == false).'<br>';echo '4.-----------'.($a == '0').'<br>';echo '5.------
阅读全文
摘要:$a = '';echo '1.---------------'.empty($a).'<br>';$a = '0';echo '2.---------------'.empty($a).'<br>';$a = 0;echo '3.---------------'.empty($a).'<br>';$a = null;echo '4.---------------'.empty($a).'<br>
阅读全文
摘要:/* * 获取用户IP的函数 */function getIp(){ $onlineip = ""; if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) { $onlineip = getenv('HTTP_CLIENT_IP'); } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv(&#
阅读全文
摘要:functionmakeAcquire($nUsers,$nAwards){//更新数据库$tranDb=newModel();$tranDb->startTrans();for($i=0;$i<sizeof($nUsers);$i++){//更新表Acquire$flagAc=$tranDb->table('Acquire')->add($acquire);//更新表Users$where=array('u_id'=>$nUsers[$i]['u_id']);$flagU=$tranDb->table(
阅读全文
摘要:二分查找又称折半查找,它是一种效率较高的查找方法。 【二分查找要求】:1.必须采用顺序存储结构 2.必须按关键字大小有序排列。[java]view plaincopy/***二分查找又称折半查找,它是一种效率较高的查找方法。 【二分查找要求】:1.必须采用顺序存储结构2.必须按关键字大小有序排列。*@authorAdministrator**/publicclassBinarySearch{publicstaticvoidmain(String[]args){int[]src=newint[]{1,3,5,7,8,9};System.out.println(binarySearch(src..
阅读全文
摘要:package com;/** * 冒泡排序 */public class Taxis { /** * @param args */ public static void main(String[] args) { int c = 0; //定义int变量 int arr[] = {12,56,4,62,8}; //定义用于排序的数组 System.out.println("没有排序前数组中的元素为:"); for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " ");
阅读全文
摘要://定义编码header('Content-Type:text/html;charset=utf-8');//Atomheader('Content-type:application/atom+xml');//CSSheader('Content-type:text/css');//Javascriptheader('Content-type:text/javascript');//JPEGImageheader('Content-type:image/jpeg');//JSONheader('Conten
阅读全文
摘要:(function( window,undefined) {varjQuery = (function() {//构建jQuery对象varjQuery =function( selector, context ) {returnnewjQuery.fn.init( selector, context, rootjQuery );}// jQuery对象原型jQuery.fn = jQuery.prototype = {constructor: jQuery,init:function( selector, context, rootjQuery ) {// selector有以下7种分支情况
阅读全文
摘要:在 JavaScript 中,每个函数对象都有一个默认的属性 prototype,称为函数对象的原型成员,这个属性指向一个对象,称为函数的原型对象,当我们每定义了一个函数的时候,JavaScript 就创建了一个对应的原型对象,也就是说,当我们定义一个函数的时候,实际上得到了两个对象,一个函数对象,一个原型对象。原型对象是一个特殊的对象,函数的 prototype 成员指向它的原型对象。可以通过函数对象的 prototype 成员取得这个原型对象的引用。下面定义一个函数对象 Person,然后通过 prototype 来取得它的原型对象。然后在它的原型对象上定义了一个方法。function P
阅读全文
摘要:1.Hold住,我们要开始动真格了!是的,看到这个标题,你一定也和我一样迫不及待了,因为我们不像之前那篇教程一样小打小闹了,我们现在要动真格了,这次我们要写的插件是上个插件的增强版本.而这个插件包含主流的插件的完整骨架.换句话说,就是我们的插件会变得更加的专业,更加的规范化,当然.也显得我们牛逼了.OK,我们现在就开始着手!2.第一个版本今天,你的客户告诉你,需要开发一个这样的插件,第一步是:选中整篇文章,并改变颜色,鼠标移过去的时候.表示读者已经读过这一段,需要把颜色变成初始的颜色,好的.这个就是全部了,你想着.嗯,应该是挺简单的.因为在上一篇教程我们已经讲解了一些关于最基本的概念,并完成了
阅读全文
摘要:1. 前言从现在开始,我们将一步一步学习怎么写一个jQuery插件,编写jQuery插件不是难的事情(当然这取决于你编写的这个插件的复杂程度,比如我们将要写的这些,就是一些很简单的例子),jQuery插件有两种形式.$的工具函数操作dom包装集合的方法.我们这里是针对第二种方式来写一个jQuery高亮的插件-highlight,虽然很简单哈.不过为了显示出我们比较牛逼,我们名字得起得专业一点.2. 第一步.让我们的插件更加安全(function($){ //代码都写在这里哈 })(jQuery)上面的这段代码,你可以把他理解成写插件的固定模式.就好像是我们小时候写作文的时候.开头一定是....
阅读全文
摘要:Struts2标签库包括:OGNLStruts2标签分类控制标签 :(if, elseif,else, iterator, append, merge, generator, subset, sort)数据标签 :(bean, param,date, debug, include, set, url, push)OGNL Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言(ExpressionLanguage,简称为EL),通过它简单一致的表达式语法,可以存取对象的任意属性:,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。Str
阅读全文
摘要:一、ValueStack 1.ValueStack是一个接口,在struts2中使用OGNL(Object-Graph Navigation Language)表达式实际上是使用 实现了ValueStack接口的类OgnlValueStack.它是ValueStack的默认实现类.2.ValueStack贯穿整个action的生命周期,每一个action实例都拥有一个ValueStack对象,其中保存了当前action对象和其他相关对象. 3.struts2把ValueStack对象保存在名为:struts.valueStack的request域中.即ValueStack作用域为reques.
阅读全文
摘要:1. 数据传输背后机制:ValueStack(值栈)在这一切的背后,是因为有了ValueStack(值栈)!ValueStack基础:OGNL要了解ValueStack,必须先理解OGNL(Object Graphic Navigatino Language)!OGNL是Struts2中使用的一种表达式语言,它可以用于JSP的标签库中,以便能够方便的访问各种对象的属性;它用于界面将参数传递到Action(并进行类型转换)中;它还可以用于struts2的配置文件中!所以,非常有必要理解OGNL的基本机制。Root对象OGNL称为对象图导航语言。所谓对象图,即以任意一个对象为根,通过OGNL可以访
阅读全文
摘要:一.非集成Spring1.创建javaWeb工程:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------2.找到开发Struts2应用需要使用到的jar文件:到http://struts.apache.org
阅读全文
摘要:一、确定Struts在开发中的地位Struts其实就是一个Servlet; 根据传统MVC开发模式,如图所示:Servlet担任了Controller的职责,而Struts框架加入后,Struts其实就是担当了Servlet的职责,即任何一个处理请求都会经过Struts框架,并由他进行分发;二、Struts2开发须知1.在web.xml配置Struts的核心Filter的原因是每个web访问都会经过Struts;2.struts.xml用于放置struts内部的一些配置信息,即使用Struts的功能,比如配置action、配置逻辑视图和物理视图的联系、配置常量等;3.可以在struts.xml
阅读全文
摘要:1.struts2的6个优点2.搭建struts2开发环境的3个步骤导入jar文件最少需要的6个jar文件:struts2-core-2.x.x.jar;xwork-2.x.x.jar;ognl-2.6.x.jar; freemarker-2.3.x.jar;commons-logging-1.1.x.jar;commons-fileupload-1.2.1.jar; 编写Struts2的配置文件 struts.xml,该文件存放在WEB-INF/classes下,在开发阶段放在src下,配置模板如下:<?xml version='1.0' encoding='U
阅读全文
摘要:有个input按钮,id为sendPhoneVerfify。编写其点击事件:$('#sendPhoneVerfify').click(function(){ var seconds = 60; var $this = $(this); $this.val(seconds + '秒后可重新发送'); var t; t = setInterval(function(){ seconds--; if (seconds <= 0) { clearInterval(t); $this.removeAttr('disabled'); $this.val
阅读全文