09 2012 档案
摘要:show table status from table主要看这一项Data_free:20 20假如是删除一条数据产生的留空空间,你如果一次性删除5W条数据吧,这样会产生100W的字节的存储空间,假如现在你剩一条记录了,有用的内容将只占二十字节,但MySQL在读取中会仍然将其视同于一个容量为100W字节的列表进行处理,并且除二十字节以外,其它空间都被白白浪费了。定期优化表是一件很重要的事情
阅读全文
摘要:其实常用的有三种:伪造来源、伪造ip、再者就是用代理。这三种方法curl都可以办到: 1 <?php 2 //第一、伪造来源HTTP_REFERER 3 $ch = curl_init();//初始化 4 curl_setopt($ch, CURLOPT_URL, http://www.example.com/); //你要访问的页面 5 curl_setopt($ch, CURLOPT_REFERER, http://www.example.com/); //伪造来源HTTP_REFERER 6 curl_setopt($chtml,CURLOPT_RETURNTRANSFER,1);
阅读全文
摘要:1. 准备master,slave2台服务器2.修改主服务器my.cnf log-bin=/opt/mysql/logs/mysql-bin server-id = 146 //唯一 ,是ip地址后几位3.修改从服务器my.cnf log-bin=/opt/mysql/logs/mysql-bin server-id = 117 replicate-do-db= test //只复制test数据库4.重启mysql /opt/mysql/bin/mysql restart5.在主服务器上建立帐户并授权slave: grant replication slave on *...
阅读全文
摘要:改变程序的执行——————— 一旦使用GDB挂上被调试程序,当程序运行起来后,你可以根据自己的调试思路来动态地在GDB中更改当前被调试程序的运行线路或是其变量的值,这个强大的功能能够让你更好的调试你的程序,比如,你可以在程序的一次运行中走遍程序的所有分支。一、修改变量值 修改被调试程序运行时的变量值,在GDB中很容易实现,使用GDB的print命令即可完成。如: (gdb) print x=4 x=4这个表达式是C/C++的语法,意为把变量x的值修改为4,如果你当前调试的语言是Pascal,那么你可以使用Pascal的语法:x:=4。 在某些时候,很有可能你的变量和GDB中的参数冲突,如: (
阅读全文
摘要:查看运行时数据——————— 在你调试程序时,当程序被停住时,你可以使用print命令(简写命令为p),或是同义命令inspect来查看当前程序的运行数据。print命令的格式是: print <expr> print /<f> <expr> <expr>是表达式,是你所调试的程序的语言的表达式(GDB可以调试多种编程语言),<f>是输出的格式,比如,如果要把表达式按16进制的格式输出,那么就是/x。一、表达式 print和许多GDB的命令一样,可以接受一个表达式,GDB会根据当前的程序运行的数据来计算这个表达式,既然是表达式,那么就
阅读全文
摘要:查看栈信息—————当程序被停住了,你需要做的第一件事就是查看程序是在哪里停住的。当你的程序调用了一个函数,函数的地址,函数参数,函数内的局部变量都会被压入“栈”(Stack)中。你可以用GDB命令来查看当前的栈中的信息。下面是一些查看函数调用栈信息的GDB命令: backtrace bt 打印当前的函数调用栈的所有信息。如: (gdb) bt #0 func (n=250) at tst.c:6 #1 0x08048524 in main (argc=1, argv=0xbffff674) at tst.c:30 #2 0x400409ed in __libc_start_main () f
阅读全文
摘要:GDB的命令概貌———————启动gdb后,就你被带入gdb的调试环境中,就可以使用gdb的命令开始调试程序了,gdb的命令可以使用help命令来查看,如下所示: /home/hchen> gdb GNU gdb 5.1.1 Copyright 2002 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under cer
阅读全文
摘要:用GDB调试程序GDB概述————GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面四个方面的功能: 1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。 2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式) 3、当程序被停住时,可以检查此时你的程序中所发生的事。 4、动态的改变你程序的执行环境。从上面看来
阅读全文
摘要:http://www.zeitoun.net/articles/comet_and_php/start
阅读全文
摘要:记录一下: 主要是通过php将某个目录下文件根据文件名copy到相应的目录中 $dirPath = '/test/test/'; $copyPath = '/123/' $dir = opendir($dirPath); while( ($file = readdir($dir) != false) { if(!is_dir($file)) { mkdir($file); } copy($dirPath.$file,$copyPath.$file); } closedir($dir);
阅读全文
摘要:ajax跨域之JSONP事件背景:某个站点分为静态产品介绍页面(或由于某原因需要静态化),和一个独立的在线应用程序。静态产品页面属于www.a.com下,而在线应用程序作为一个相对独立的系统存在于app.a.com上。在www.a.com上需要显示在线应用程序(app.a.com)中用户的登录状态及简单的用户信息。由于需要实时的在静态页面中显示用户登录状态,在线应用程序提供了一个用户接口来输出当前用户的登录信息,静态页面采用ajax方式动态获取。问题在于www.a.com和app.a.com分属于不同子域,无法通过ajax直接进行通信。思路分析:由于同源策略的限制,XMLHttpRequest
阅读全文
摘要:ajax跨域之服务端代理事件背景:某系统A(A.com)对外提供一个邮件发送接口,可接收GET或POST方式传递参数(如email, subject, body等)数据。当某小系统b(b.com)需要使用到这个接口的功能时,并提供比较好的用户体验时,采取了通过ajax将用户填入的信息传递数据给这个接口,来实现发送邮件的目的。问题在于:某系统A和某小系统b分属于两个域名下,在物理和逻辑上都是互相独立和分离的,将无法发起ajax连接,IE下显示为无权限。思路分析:无法进行ajax连接,是因为浏览器安全模型的同源策略,存在跨域问题。同源策略阻止从一个源加载的文档或脚本获取或设置另一个源加载的文档的属
阅读全文
摘要:1.服务器端php代理 有A.com b.com 2个域名, 可以A.com 通过 ajax 代理代理导A.com/proxy.php ,proxy.php将接收到的数据通过curl传递到B.com 可参考http://www.impng.com/web-dev/ajax-crossdomain-by-proxy.html2.jsonp解决方法 可参考:http://www.impng.com/web-dev/ajax-crossdomain-by-jsonp.html3.jQuery jsonp的方法实现$("#btn").click(function(k){ //...
阅读全文
摘要:1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 5 typedef int ElementType; 6 7 struct HeapStruct; 8 typedef struct HeapStruct *PriorityQueue; 9 10 PriorityQueue Initialize( int MaxElements); 11 12 void DestoryQueue(PriorityQueue H); 13 void MakeEmpty(PriorityQueu
阅读全文
摘要:1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 5 6 typedef int ElementType; 7 typedef unsigned int Index; 8 9 struct ListNode; 10 typedef struct ListNode *Position; 11 struct HashTbl; 12 typedef struct HashTbl *HashTable; 13 14 15 Index Hash( const int Key, int
阅读全文
摘要:动态平衡技术Adelson-Velskii 和 Landis 提出了一个动态地保持二叉排序树平衡的方法,其基本思想是: 在构造二叉排序树的过程中,每当插入一个结点时,首先检查是否因插入而破坏了树的平衡性,如果是因插入结点而破坏了树的平衡性,则找出其中最小不平衡子树,在保持排序树特性的前提下,调整最小不平衡子树中各结点之间的连接关系,以达到新的平衡。通常将这样得到的平衡二叉排序树简称为AVL 树。那么什么是 最小不平衡子树 以离插入结点最近、且平衡因子绝对值大于 1 的结点作根结点的子树。为了简化讨论,不妨假设二叉排序树的最小不平衡子树的根结点为 A ,则调整该子树的规律可归纳为下列四种情况..
阅读全文
摘要:1.前、端后都要做好安全的把关工作 不能单靠前端做安全验证工作,后端也必须有过滤机制,检验前方传来的资料。由于Ajax也会接收后端传送来的资料,对这些资料都要采不信任态度,必须加以检查。 2.尽量以HTTP POST方法传输资料 使用GET方法容易让有心人士得到资料,虽然POST并非万无一失,但比起GET至少较为安全。 3.不要直接用eval函式唤起JSON物件 JSON是采用JavaScript物件实字的资料格式,从后端传到Ajax程式时,必须采用eval函式将它从字串转成物件,这时必须先行检查资料中是否有非法字元,以免非法程式借机启用。 4.限制使用者可用的HTML语法 许多Ajax网站允
阅读全文
摘要:真正的面向对象语言必须支持继承机制,即一个类能够重用(继承)另一个类的方法和属性。所有开发者定义的类都可作为基类,出于安全原因,本地类和宿主类不能作为基类。有时你可能想创建一个不能直接使用的基类,它只是用于给子类提供通用的函数,这种基数被看作抽象类。创建的子类将继承超类的所有属性和方法,包括构造函数及方法的实现。所有的属性和方法都是公用的,子类可直接访问这些方法,还可添加超类中没有的属性和方法,也可覆盖超类中的属性和方法。一、 继承的方式(1) 对象冒充:构造函数使用this关键字给所有属性和方法赋值(即采用声明的构造函数方式)。因为构造函数只是一个函数,所在可使ClassA的构造函数成为Cl
阅读全文
摘要:1 typedef struct QNode 2 { 3 QElemType data; 4 struct QNode *next; 5 6 }QNode,*QueuePtr; 7 8 9 typedef struct 10 { 11 QueuePtr front, rear; 12 }LinkQueue; 13 14 15 void 16 InitQueue(LinkQueue *Q) 17 { 18 Q->front = Q->next = malloc(sizeof( struct QNode...
阅读全文
摘要:#include <stdio.h>#include <stdlib.h>#include <string.h>#define ElementType intstruct Node;typedef struct Node *PtrToNode;typedef PtrToNode Stack;int IsEmpty( Stack S); Stack CreateStack(void);void DisPoseStack( Stack S); void MakeEmpty( Stack S); void Push(ElementType X, Stack S);
阅读全文
摘要:1 #include <stdio.h> 2 #include <stdlib.h> 3 4 5 6 typedef int ElementType; 7 8 struct TreeNode; 9 typedef struct TreeNode *Position; 10 typedef struct TreeNode *SearchTree; 11 12 13 SearchTree MakeEmpty( SearchTree T ); 14 Position Find(ElementType X,SearchTree T); 15 Position Fin...
阅读全文
摘要:C语言,结构体(struct) 用法结构(struct) 结构是由基本数据类型构成的、并用一个标识符来命名的各种变量的组合。结构中可以使用不同的数据类型。 1. 结构说明和结构变量定义 在Turbo C中, 结构也是一种数据类型, 可以使用结构变量, 因此, 象其它类型的变量一样, 在使用结构变量时要先对其定义。 定义结构变量的一般格式为: struct 结构名 { 类型 变量名; 类型 变量名; ... } 结构变量; 结构名是结构的标识符不是变量名。 类型为第二节中所讲述的五种数据类型(整型、浮点型、字符型、指针型和无值型)。 构成结构的每一个类型变量称为结构成员, 它象数组的元素一样,
阅读全文
摘要:int Partition(int a[], int p, int r){ int left =p; int right = r; int provint = a[left]; while( left < right) { while( left < right && a[right] >= provint) right --; a[left] = a[right]; while(left < right && a[left] <= provint) left ++; a[right] = a[le...
阅读全文
摘要:归并排序的程序: voidmergeSort(int a[], int first, int last, int temp[]){ int mid ; if ( first < last) { mid = (first + last)/2; //分解 mergeSort(a,first,mid,temp); mergeSort(a,mid +1,last,temp); //合并 mergeArray(a,first,mid,last,temp); }}voidmergeArray(int a[],...
阅读全文
摘要:一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的 全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另 一块区域。 - 程序结束后由系统释放。 4、文字常量区 —常量字符串就是放在这里的。 程序结束后
阅读全文