yxhxj2006

常用链接

统计

最新评论

#

ckeditor的详细配置

一、使用方法:

1、在页面<head>中引入ckeditor核心文件ckeditor.js

<script type="text/javas cript" src="ckeditor/ckeditor.js"></script>

2、在使用编辑器的地方插入HTML控件<textarea>

<textarea id="TextArea1" cols="20" rows="2" class="ckeditor"></textarea>

如果是ASP.NET环境,也可用服务器端控件<TextBox>

<asp:TextBox ID="tbContent" runat="server" TextMode="MultiLine" class="ckeditor"></asp:TextBox>

注意在控件中加上 class="ckeditor" 。

3、将相应的控件替换成编辑器代码

<script type="text/javas cript">
CKEDITOR.replace('TextArea1');
//如果是在ASP.NET环境下用的服务器端控件<TextBox>
CKEDITOR.replace('tbContent');
//如果<TextBox>控件在母版页中,要这样写
CKEDITOR.replace('<%=tbContent.ClientID.Replace("_","$") %>');
</script>

4、配置编辑器

    ckeditor的配置都集中在 ckeditor/config.js 文件中,下面是一些常用的配置参数:

// 界面语言,默认为 'en'

    config.language = 'zh-cn';

// 设置宽高

    config.width = 400;

    config.height = 400;

// 编辑器样式,有三种:'kama'(默认)、'office2003'、'v2'

    config.skin = 'v2';

// 背景颜色

    config.uiColor = '#FFF';

// 工具栏(基础'Basic'、全能'Full'、自定义)plugins/toolbar/plugin.js

    config.toolbar = 'Basic';

    config.toolbar = 'Full';

    这将配合:
config.toolbar_Full = [
['Source','-','Save','NewPage','Preview','-','Templates'],
['Cut','Copy','Paste','PasteText','PasteFromWord','-','Print', 'SpellChecker', 'Scayt'],
['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
['Form', 'Checkbox', 'Radio', 'TextField', 'Textarea', 'Select', 'Button', 'ImageButton', 'HiddenField'],
'/',
['Bold','Italic','Underline','Strike','-','Subscript','Superscript'],
['NumberedList','BulletedList','-','Outdent','Indent','Blockquote'],
['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
['Link','Unlink','Anchor'],
['Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak'],
'/',
['Styles','Format','Font','FontSize'],
['TextColor','BGColor']
];

    //工具栏是否可以被收缩
config.toolbarCanCollapse = true;

    //工具栏的位置
config.toolbarLocation = 'top';//可选:bottom

    //工具栏默认是否展开
config.toolbarStartupExpanded = true;

// 取消 “拖拽以改变尺寸”功能 plugins/resize/plugin.js
config.resize_enabled = false;

    //改变大小的最大高度

    config.resize_maxHeight = 3000;

    //改变大小的最大宽度
config.resize_maxWidth = 3000;

    //改变大小的最小高度
config.resize_minHeight = 250;

    //改变大小的最小宽度
config.resize_minWidth = 750;
// 当提交包含有此编辑器的表单时,是否自动更新元素内的数据
config.autoUpdateElement = true;

// 设置是使用绝对目录还是相对目录,为空为相对目录
config.baseHref = ''

    // 编辑器的z-index值
config.baseFloatZIndex = 10000;

//设置快捷键
config.keystrokes = [
[ CKEDITOR.ALT + 121 /*F10*/, 'toolbarFocus' ], //获取焦点
[ CKEDITOR.ALT + 122 /*F11*/, 'elementsPathFocus' ], //元素焦点

       [ CKEDITOR.SHIFT + 121 /*F10*/, 'contextMenu' ], //文本菜单

       [ CKEDITOR.CTRL + 90 /*Z*/, 'undo' ], //撤销
[ CKEDITOR.CTRL + 89 /*Y*/, 'redo' ], //重做
[ CKEDITOR.CTRL + CKEDITOR.SHIFT + 90 /*Z*/, 'redo' ], //

        [ CKEDITOR.CTRL + 76 /*L*/, 'link' ], //链接

        [ CKEDITOR.CTRL + 66 /*B*/, 'bold' ], //粗体
[ CKEDITOR.CTRL + 73 /*I*/, 'italic' ], //斜体
[ CKEDITOR.CTRL + 85 /*U*/, 'underline' ], //下划线

        [ CKEDITOR.ALT + 109 /*-*/, 'toolbarCollapse' ]
]

    //设置快捷键 可能与浏览器快捷键冲突 plugins/keystrokes/plugin.js.
config.blockedKeystrokes = [
CKEDITOR.CTRL + 66 /*B*/,
CKEDITOR.CTRL + 73 /*I*/,
CKEDITOR.CTRL + 85 /*U*/
]

    //设置编辑内元素的背景色的取值 plugins/colorbutton/plugin.js.
config.colorButton_backStyle = {
element : 'span',
styles : { 'background-color' : '#(color)' }
}

    //设置前景色的取值 plugins/colorbutton/plugin.js
config.colorButton_colors = '000,800000,8B4513,2F4F4F,008080,000080,4B0082,696969,B22222,A52A2A,DAA520,

        006400,40E0D0,0000CD,800080,808080,F00,FF8C00,FFD700,008000,0FF,00F,EE82EE,

        A9A9A9,FFA07A,FFA500,FFFF00,00FF00,AFEEEE,ADD8E6,DDA0DD,D3D3D3,FFF0F5,

        FAEBD7,FFFFE0,F0FFF0,F0FFFF,F0F8FF,E6E6FA,FFF’

    //是否在选择颜色时显示“其它颜色”选项 plugins/colorbutton/plugin.js
config.colorButton_enableMore = false

    //区块的前景色默认值设置 plugins/colorbutton/plugin.js
config.colorButton_foreStyle = {
element : 'span',
styles : { 'color' : '#(color)' }
};

    //所需要添加的CSS文件 在此添加 可使用相对路径和网站的绝对路径
config.contentsCss = './contents.css';

    //文字方向
config.contentsLangDirection = 'rtl'; //从左到右

    //CKeditor的配置文件 若不想配置 留空即可
CKEDITOR.replace( 'myfiled', { customConfig : './config.js' } );

    //界面编辑框的背景色 plugins/dialog/plugin.js
config.dialog_backgroundCoverColor = '#fffefd'; //可设置参考
config.dialog_backgroundCoverColor = 'white' //默认

    //背景的不透明度 数值应该在:0.0~1.0 之间 plugins/dialog/plugin.js
config.dialog_backgroundCoverOpacity = 0.5

    //移动或者改变元素时 边框的吸附距离 单位:像素 plugins/dialog/plugin.js
config.dialog_magnetDistance = 20;

    //是否拒绝本地拼写检查和提示 默认为拒绝 目前仅firefox和safari支持 plugins/wysiwygarea/plugin.js.
config.disableNativeSpellChecker = true

    //进行表格编辑功能 如:添加行或列 目前仅firefox支持 plugins/wysiwygarea/plugin.js
config.disableNativeTableHandles = true; //默认为不开启

    //是否开启 图片和表格 的改变大小的功能 config.disableObjectResizing = true;
config.disableObjectResizing = false //默认为开启

    //设置HTML文档类型
config.docType = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd%22' ;

    //是否对编辑区域进行渲染 plugins/editingblock/plugin.js
config.editingBlock = true;

    //编辑器中回车产生的标签
config.enterMode = CKEDITOR.ENTER_P; //可选:CKEDITOR.ENTER_BR或CKEDITOR.ENTER_DIV

    //是否使用HTML实体进行输出 plugins/entities/plugin.js
config.entities = true;

    //定义更多的实体 plugins/entities/plugin.js
config.entities_additional = '#39'; //其中#代替了&

    //是否转换一些难以显示的字符为相应的HTML字符 plugins/entities/plugin.js
config.entities_greek = true;

    //是否转换一些拉丁字符为HTML plugins/entities/plugin.js
config.entities_latin = true;

    //是否转换一些特殊字符为ASCII字符 如"This is Chinese: 汉语."转换为"This is Chinese: 汉语." plugins/entities/plugin.js
config.entities_processNumerical = false;

    //添加新组件
config.extraPlugins = 'myplugin'; //非默认 仅示例

    //使用搜索时的高亮色 plugins/find/plugin.js
config.find_highlight = {
element : 'span',
styles : { 'background-color' : '#ff0', 'color' : '#00f' }
};

    //默认的字体名 plugins/font/plugin.js
config.font_defaultLabel = 'Arial';

    //字体编辑时的字符集 可以添加常用的中文字符:宋体、楷体、黑体等 plugins/font/plugin.js
config.font_names = 'Arial;Times New Roman;Verdana';

    //文字的默认式样 plugins/font/plugin.js
config.font_style = {
element   : 'span',
styles   : { 'font-family' : '#(family)' },
overrides : [ { element : 'font', attributes : { 'face' : null } } ]
};

    //字体默认大小 plugins/font/plugin.js
config.fontSize_defaultLabel = '12px';

    //字体编辑时可选的字体大小 plugins/font/plugin.js
config.fontSize_sizes ='8/8px;9/9px;10/10px;11/11px;12/12px;14/14px;16/16px;18/18px;20/20px;22/22px;24/24px;26/26px;28/28px;36/36px;48/48px;72/72px'

    //设置字体大小时 使用的式样 plugins/font/plugin.js
config.fontSize_style = {
element   : 'span',
styles   : { 'font-size' : '#(size)' },
overrides : [ { element : 'font', attributes : { 'size' : null } } ]
};

    //是否强制复制来的内容去除格式 plugins/pastetext/plugin.js
config.forcePasteAsPlainText =false //不去除

    //是否强制用“&”来代替“&amp;”plugins/htmldataprocessor/plugin.js
config.forceSimpleAmpersand = false;

    //对address标签进行格式化 plugins/format/plugin.js
config.format_address = { element : 'address', attributes : { class : 'styledAddress' } };

    //对DIV标签自动进行格式化 plugins/format/plugin.js
config.format_div = { element : 'div', attributes : { class : 'normalDiv' } };

    //对H1标签自动进行格式化 plugins/format/plugin.js
config.format_h1 = { element : 'h1', attributes : { class : 'contentTitle1' } };

    //对H2标签自动进行格式化 plugins/format/plugin.js
config.format_h2 = { element : 'h2', attributes : { class : 'contentTitle2' } };

    //对H3标签自动进行格式化 plugins/format/plugin.js
config.format_h1 = { element : 'h3', attributes : { class : 'contentTitle3' } };

    //对H4标签自动进行格式化 plugins/format/plugin.js
config.format_h1 = { element : 'h4', attributes : { class : 'contentTitle4' } };

    //对H5标签自动进行格式化 plugins/format/plugin.js
config.format_h1 = { element : 'h5', attributes : { class : 'contentTitle5' } };

    //对H6标签自动进行格式化 plugins/format/plugin.js
config.format_h1 = { element : 'h6', attributes : { class : 'contentTitle6' } };

    //对P标签自动进行格式化 plugins/format/plugin.js
config.format_p = { element : 'p', attributes : { class : 'normalPara' } };

    //对PRE标签自动进行格式化 plugins/format/plugin.js
config.format_pre = { element : 'pre', attributes : { class : 'co
 de' } };

    //用分号分隔的标签名字 在工具栏上显示 plugins/format/plugin.js
config.format_tags = 'p;h1;h2;h3;h4;h5;h6;pre;address;div';

    //是否使用完整的html编辑模式 如使用,其源码将包含:<html><body></body></html>等标签
config.fullPage = false;

    //是否忽略段落中的空字符 若不忽略 则字符将以“”表示 plugins/wysiwygarea/plugin.js
config.ignoreEmptyParagraph = true;

    //在清除图片属性框中的链接属性时 是否同时清除两边的<a>标签 plugins/image/plugin.js
config.image_removeLinkByEmptyURL = true;

    //一组用逗号分隔的标签名称,显示在左下角的层次嵌套中 plugins/menu/plugin.js.
config.menu_groups ='clipboard,form,tablecell,tablecellproperties,tablerow,tablecolumn,table,anchor,link,image,flash,checkbox,radio,textfield,hiddenfield,imagebutton,button,select,textarea';

    //显示子菜单时的延迟,单位:ms plugins/menu/plugin.js
config.menu_subMenuDelay = 400;

    //当执行“新建”命令时,编辑器中的内容 plugins/newpage/plugin.js
config.newpage_html = '';

    //当从word里复制文字进来时,是否进行文字的格式化去除 plugins/pastefromword/plugin.js
config.pasteFromWordIgnoreFontFace = true; //默认为忽略格式

    //是否使用<h1><h2>等标签修饰或者代替从word文档中粘贴过来的内容 plugins/pastefromword/plugin.js
config.pasteFromWordKeepsStructure = false;

    //从word中粘贴内容时是否移除格式 plugins/pastefromword/plugin.js
config.pasteFromWordRemoveStyle = false;

    //对应后台语言的类型来对输出的HTML内容进行格式化,默认为空
config.protectedSource.push( /<\?[\s\S]*?\?>/g );   // PHP Co
 de
config.protectedSource.push( //g );   // ASP Co
 de
config.protectedSource.push( /(]+>[\s|\S]*?<\/asp:[^\>]+>)|(]+\/>)/gi );   // ASP.Net Co
 de

    //当输入:shift+Enter时插入的标签
config.shiftEnterMode = CKEDITOR.ENTER_P; //可选:CKEDITOR.ENTER_BR或CKEDITOR.ENTER_DIV

    //可选的表情替代字符 plugins/smiley/plugin.js.
config.smiley_descriptions = [
':)', ':(', ';)', ':D', ':/', ':P',
'', '', '', '', '', '',
'', ';(', '', '', '', '',
'', ':kiss', '' ];

    //对应的表情图片 plugins/smiley/plugin.js
config.smiley_images = [
'regular_smile.gif','sad_smile.gif','wink_smile.gif','teeth_smile.gif','confused_smile.gif','tounge_smile.gif',
'embaressed_smile.gif','omg_smile.gif','whatchutalkingabout_smile.gif','angry_smile.gif','angel_smile.gif','shades_smile.gif',
'devil_smile.gif','cry_smile.gif','lightbulb.gif','thumbs_down.gif','thumbs_up.gif','heart.gif',
'broken_heart.gif','kiss.gif','envelope.gif'];

    //表情的地址 plugins/smiley/plugin.js
config.smiley_path = 'plugins/smiley/images/';

    //页面载入时,编辑框是否立即获得焦点 plugins/editingblock/plugin.js plugins/editingblock/plugin.js.
config.startupFocus = false;

    //载入时,以何种方式编辑 源码和所见即所得 "source"和"wysiwyg" plugins/editingblock/plugin.js.
config.startupMode ='wysiwyg';

    //载入时,是否显示框体的边框 plugins/showblocks/plugin.js
config.startupOutlineBlocks = false;

    //是否载入样式文件 plugins/stylescombo/plugin.js.
config.stylesCombo_stylesSet = 'default';
//以下为可选
config.stylesCombo_stylesSet = 'mystyles';
config.stylesCombo_stylesSet = 'mystyles:/editorstyles/styles.js';
config.stylesCombo_stylesSet = 'mystyles:http://www.example.com/editorstyles/styles.js';

    //起始的索引值
config.tabIndex = 0;

    //当用户键入TAB时,编辑器走过的空格数,(&nbsp;) 当值为0时,焦点将移出编辑框 plugins/tab/plugin.js
config.tabSpaces = 0;

    //默认使用的模板 plugins/templates/plugin.js.
config.templates = 'default';

    //用逗号分隔的模板文件plugins/templates/plugin.js.
config.templates_files = [ 'plugins/templates/templates/default.js' ]

    //当使用模板时,“编辑内容将被替换”框是否选中 plugins/templates/plugin.js
config.templates_replaceContent = true;

    //主题
config.theme = 'default';

    //撤销的记录步数 plugins/undo/plugin.js
config.undoStackSize =20;

// 在 CKEditor 中集成 CKFinder,注意 ckfinder 的路径选择要正确。
//CKFinder.SetupCKEditor(null, '/ckfinder/');

二、 一些使用技巧

1、在页面中即时设置编辑器

<script type="text/javas cript">
//示例1:设置工具栏为基本工具栏,高度为70
CKEDITOR.replace('<%=tbLink.ClientID.Replace("_","$") %>',
{ toolbar:'Basic', height:70 });
//示例2:工具栏为自定义类型
CKEDITOR.replace( 'editor1',
{
toolbar :
[
//加粗     斜体,     下划线      穿过线      下标字        上标字
['Bold','Italic','Underline','Strike','Subscript','Superscript'],
//数字列表          实体列表            减小缩进    增大缩进
['NumberedList','BulletedList','-','Outdent','Indent'],
//左对齐             居中对齐          右对齐          两端对齐
['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
//超链接 取消超链接 锚点
['Link','Unlink','Anchor'],
//图片    flash    表格       水平线            表情       特殊字符        分页符
['Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak'],
'/',
//样式       格式      字体    字体大小
['Styles','Format','Font','FontSize'],
//文本颜色     背景颜色
['TextColor','BGColor'],
//全屏           显示区块
['Maximize', 'ShowBlocks','-']
]
}
);
</script>

三、精简ckeditor

    在部署到Web服务器上时,下列文件夹和文件都可以删除:

    /_samples :示例文件夹;

    /_source :未压缩源程序;

    /lang文件夹下除 zh-cn.js、en.js 以外的文件(也可以根据需要保留其他语言文件);

    根目录下的 changes.html(更新列表),install.html(安装指向),license.html(使用许可);


from:http://robin88129.iteye.com/blog/1123222

posted @ 2014-11-24 13:10 奋斗成就男人 阅读(528) | 评论 (0)编辑 收藏

iframe去除边框 .

iframe去除边框

 

<iframe name="file_frame" src="UploadFile.jsp" frameborder=no  border=0  marginwidth=0  marginheight=0  scrolling=no></iframe>

 

iframe元素的功能是在一个文档里内嵌一个文档,创建一个浮动的帧。iframe参数列表

  name:内嵌帧名称
  width:内嵌帧宽度(可用像素值或百分比)
  height:内嵌帧高度(可用像素值或百分比)
  frameborder:内嵌帧边框 是否显示边缘;填”1″表示”是”,填”0″表示”否”
  marginwidth:帧内文本的左右页边距
  marginheight:帧内文本的上下页边距
  scrolling:是否出现滚动条(“auto”为自动,“yes”为显示,“no”为不显示)
  src:内嵌入文件的地址
  style:内嵌文档的样式(如设置文档背景等)
  allowtransparency:是否允许透明

posted @ 2014-09-26 08:57 奋斗成就男人 阅读(234) | 评论 (0)编辑 收藏

JS 跳出iframe框架

(1)session过期后登陆页面跳出iframe页面问题
登陆页面增加javascript:
function window.onload()
    {
        if(window.parent.length>0)
         window.parent.location=location;
    }

或者:

<script>

if (window != top)
top.location.href = location.href;

</script>


(2)自动跳出iframe的代码
<script type="text/javascript">
if (top.location !== self.location) {
    top.location=self.location;
}
</script> 



(3)在框架页内的退出操作:
<script type="text/javascript">
if (top.location !== self.location) {
    top.location = "../index.jsp";//跳出框架,并回到首页
}
</script> 

posted @ 2014-09-26 08:55 奋斗成就男人 阅读(264) | 评论 (0)编辑 收藏

10个PHP开源框架

symfony

symfony

简单的模板功能symfony是一个开源的PHP Web框架。基于最佳Web开发实践,已经有多个网站完全采用此框架开发,symfony的目的是加速Web应用的创建与维护。它的特点如下:缓存管理 、自定义URLs、搭建了一些基础模块、多语言与I18N支持、采用对象模型与MVC分离、Ajax支持、适用于企业应用开发。

项目主页】【CODE托管地址】【查看教程及示例

CodeIgniter

CodeIgniter

CodeIgniter 是一个简单快速的PHP MVC 框架。它为组织提供了足够的自由支持,允许开发人员更迅速地工作。使用 CodeIgniter 时,您不必以某种方式命名数据库表,也不必根据表命名模型。这使 CodeIgniter 成为重构遗留 PHP 应用程序的理想选择,在此类遗留应用程序中,可能存在需要移植的所有奇怪的结构。

项目主页】【CODE托管地址】【查看教程及示例

Laravel

Laravel

Laravel 是一个简单优雅的 PHP web 开发框架,将你从意大利面条式的代码中解放出来。通过简单的、表达式语法开发出很棒的 Web 应用。

项目主页】【CODE托管地址】【查看教程及示例

CakePHP

CakePHP

CakePHP是一个运用了诸如ActiveRecord、Association Data Mapping、Front Controller和MVC等著名设计模式的快速开发框架。该项目主要目标是提供一个可以让各种层次的PHP开发人员快速地开发出健壮的Web应用,而 又不失灵活性。

项目主页】【CODE托管地址】【查看教程及示例

Yii

Yii

Yii是一个高性能的PHP5的web应用程序开发框架。通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发。

项目主页】【CODE托管地址】【查看教程及示例

PHPUnit

PHPUnit

PHPUnit是一个轻量级的PHP测试框架。它是在PHP5下面对JUnit3系列版本的完整移植。这个工具也可以被Xdebug扩展用来生成代码覆盖率报告 ,并且可以与phing集成来自动测试,最合它还可以和Selenium整合来完成大型的自动化集成测试。

项目主页】【CODE托管地址】【查看教程及示例

SlimFramework

SlimFramework

这是一个简单的 PHP5 框架用来创建 RESTful 的 Web 应用。可以帮助你快速编写简单功能强大的 RESTful 风格的web应用程序 和APIs。Slim很简单,可以让新手和专业人士使用。

项目主页】【CODE托管地址】【查看教程及示例

PHP Silex

PHP Silex

Symfony团队出品的php5.3微框架, 可大量复用Symfony2组件。Silex是Symfony 2的简化版本,比大多数PHP框架更适合开发简单应用。

项目主页】【CODE托管地址】【查看教程及示例

FUEL

FuelPHP

FuelPHP 是一个简单、灵活的 PHP 5.3 的 Web 框架,其思路结合了来自主流框架的优点。

项目主页】【代码托管地址】【查看教程及示例

thinkphp

ThinkPHP

ThinkPHP是一个快速、简单、面向对象的轻量级PHP开发框架,遵循Apache2协议,为了敏捷Web应用开发和简化企业应用开发而诞生。

项目主页】【CODE托管地址】【查看教程及示例

posted @ 2014-09-18 00:13 奋斗成就男人 阅读(163) | 评论 (0)编辑 收藏

ZenCart 1.5.x 后台管理密码过期修改办法

目前 ZenCart 最新版本是 1.5.1,在 1.5 版本后,ZenCart 就多了一项密码保护功能,后台的密码只能使用 90 天,90 天后自动过期。
这是强制人家修改密码,我觉得这功能有点鸡肋,而且很添乱,会修改密码的会很神经质的经常修改,像我这样不修改密码的,都是可悲的什么时候过期都忘记了,最最郁闷的是,它的数据库中的 md5 密码还加后缀,不是随便复制个通用的密码就可以用,所以每次我只能看着后台那个简陋的登陆界面抓耳挠腮。
今天已经是第三次遇到这个问题了,于是我决定把方法记录下来。
方法还是复制通用的密码的 MD5 格式,官方提供的。进入 phpMyAdmin,在对应的数据库下运行下面的 SQL 语句:
DELETE FROM admin WHERE admin_name = 'Admin'; 
INSERT INTO admin (admin_name, admin_email, admin_pass, admin_profile) 
VALUES ('Admin', 'admin@localhost', '351683ea4e19efe34874b501fdbf9792:9b', 1);
如果你后台登陆名不是 Admin,那就得改成你的登录名,邮箱当然也要改。这个通用密码直接复制是不行的,必须清空整个 admin 项后再写入才有效。哦,对了,这个通用密码是:admin。
修改后用密码 admin 登陆后会提示你修改密码,当然,修改后的密码仍然是90天有效。
那有没有办法去掉这个 1.5 版本后的 ZenCart 这个 90 天的密码设定呢?老外提供了个办法,不知道管用不管用。
方法一:找到 admin/login.php 文件内的 define('ADMIN_PASSWORD_EXPIRES_INTERVAL', strtotime('- 90 day'));,把里面的 90 改成大大的数字,比如 36500 ,嗯,100年应该够了。
方法二:找到 admin/includes/functions/admin_access.php 文件内的 zen_check_for_password_problems() 函数,在函数下的第一行插入 return FALSE;
方法三:也是在方法二的这个文件里,修改某个函数里的天数,像方法一那样改的无限大,不过都没经过测试,就不要发了,还是用数据库修改法吧。
后面的三种方法你如果想测试,最后搞个 DEMO 站测试,因为老外是这么提示的,好像很严重的样子,英文我看不懂,但或许你懂得:
*** Warning: This change will violate the PCI status of your cart. You should only do this on test carts on your own PC or on carts which do not require PCI certification. ***

posted @ 2014-06-17 02:05 奋斗成就男人 阅读(306) | 评论 (0)编辑 收藏

安装环境PHP curl函数 服务器不支持 curl_exec 的解决办法

网友安装的时候,最长遇到的就是PHP curl函数不支持。这里有几种解决方法。

windows下开启方法:
1、拷贝PHP目录中的libeay32.dll, ssleay32.dll, php5ts.dll, php_curl.dll文件到 system32 目录。
2、修改php.ini:配置好 extension_dir ,去掉 extension = php_curl.dll 前面的分号。

3、重起apache或者IIS。

测试是否安装成功:

<?php
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,"http://www.google.cn");
curl_setopt($ch,CURLOPT_HEADER,1);
curl_exec($ch);
curl_close($ch);
?>

linux下开启方法:

方法一

安装cURL
   # wget http://curl.haxx.se/download/curl-7.17.1.tar.gz
   # tar -zxf curl-7.17.1.tar.gz
   # ./configure --prefix=/usr/local/curl
   # make; make install

安装php

   只要打开开关 --with-curl=/usr/local/curl

   就可以了。

   这个扩展库还是非常棒,是fsockopen等等相关的有效的替代品。



方法二
进入安装php 的源码目录,

cd ext
cd curl
phpize
./configure --with-curl =DIR
make
就会在PHPDIR/ext/curl /moudles/下生成curl .so的文件。

复制curl .so文件到extensions的配置目录,修改php .ini就好了


posted @ 2014-06-10 00:03 奋斗成就男人 阅读(1973) | 评论 (0)编辑 收藏

PHP获取当前的域名

  1. <?  
    //获取当前的域名:   
    echo $_SERVER['SERVER_NAME'];  
    //获取来源网址,即点击来到本页的上页网址   
    echo $_SERVER["HTTP_REFERER"];  
    $_SERVER['REQUEST_URI'];//获取当前域名的后缀   
    $_SERVER['HTTP_HOST'];//获取当前域名   
    dirname(__FILE__);//获取当前文件的物理路径   
    dirname(__FILE__)."/../";//获取当前文件的上一级物理路径   
    ?>  

 

posted @ 2014-05-30 13:22 奋斗成就男人 阅读(160) | 评论 (0)编辑 收藏

网站漏洞扫描/弱口令扫描工具大全

Shadow Security Scanner v 网络入侵机_V2.0 波尔远程控制V6.32 VIP破解版 
superscan4.0扫描器 HttpsMimTools nohackasp木马生成器 
拿站和思路 Oracle_专用注射器 远程控制软件ntshell v1.0(开源 
挖掘鸡4.02 Willcome急速批量抓鸡全能 PcShare远程控制软件 
多功能S扫描器 php168漏洞利用工具 中华经典网络军刀NC 
小马上线及绑困和抓鸡 iebho攻击程序 终极Rootkit 
超详细讲解鸽子上线 QQEAMIL攻击器 PHP木马修改增强版 
金豹多顶下载者 framework-2.6-snapshot 提权工具集 
EditPlus v2.31 Buil     
最新过XP2网马     
剑煞BetaV7.6.8     
扫描端口V2.0     
X-way扫描器     
SpyNet Sniffer     
网站猎手2.0     
X-Scan-v3.3     
流光5.0黑客基地专用破解版     
NBSI网站漏洞检测工具     
明小子旁注工具3.5     
端口过滤扫描器     
mysql_pwd_crack     
Advanced IP Scanner v1.5     
IPScanner     
扫描软件THC-Amap v5.0     
php注入辅助工具:phpsend     
PackInter,sniffer工具含源代码     
X-Scan-v3.2-cn     
X-Scan-v3.2-beta版     
超级扫描工具:nmap-3.81-win32     
流光 5.0 时间限制破解     
Domain3.2正式版(5.2修正)     
sql扫描加自动攻击工具:Sqlpoke     
THC-Amap v4.8     
mysql字段扫描:numscan     
第一款php漏洞扫描器:rpvs     
Oscanner     
端口扫描器红魂专用版     
atk-3.1     
金山毒霸可疑文件扫描工具 v2.01     
GUI界面的WED和WIS综合工具     
超强adsl破解器     
俄罗斯专业扫描工具SSS6.67.58破解版     
Attack Toolkit 3.0     
Roman ADSL帐号扫描工具升级版     
针对广东电信漏洞的扫描工具     
IPv4和IPv6通用扫描工具:scan6     
adsl帐号扫描工具+动画     
MS Webserver 漏洞扫描器     
网络主机扫描(HostScan)     
T-PsKit     
Retina Network Security Scanner     
WildPackets ProCovert     
Angry IP Scanner     
wlan无线网络诊断/WildPackets AiroPe     
APort     
铁血扫描器     
无处藏身(Seekyou)     
nScan     
SQL Injection测试工具     
FloodScan     
rpcscan信息扫描工具     
优秀的ShadowScan     
经典扫描程序Amap     
Superscan     
漏洞扫描Nessus     
ipc批处理扫描工具     
Angry IP Scanner 汉化版     
强大的漏洞扫描NessusWX     
WindowsNT/2000自动攻击探测机     
网络黑客控制中心使用教程+工具     
扫描工具SuperScan4     
NMap最新版本:nmap-3.70-win32     
Retina DCOM Scanner     
SQLScan     
很好的扫描工具 NetScanTools     
ipc扫描工具scanipc     
非常有名的扫描 工具X-way     
流光 for win98/ME     
最好的ipc$扫描essential nettools


不错的扫描工具easyscan      
鼎鼎大名的扫描工具 流光     
大范围网段快速ipc$猜解机ipscan     
N.E.W.T.网络扫描器     
端口扫描A Complete Subnet Scanner     
自动攻击探测机     
扫描工具:Vsan     
IIS漏洞扫描Easyscan     
高速端口扫描Bluesportscanner     
扫描工具X-port     
最好的扫描器:X-SAN 3.0 beta     
扫描工具:STAT Scanner Pro     
阿拉丁扫描器     
小巧的黑客工具:NBTScan     
非常优秀的扫描工具X-scan 2.3     
扫描工具IPScanner     
扫描工具Dsns     
著名的且功能强大的WEB扫描工具Wnikto32     
小巧的端口扫描NetBurn     
扫描工具GFI LANguard Scanner     
不错的扫描工具:Scan     
中华经典网络军刀     
优秀的扫描工具Nmap命令行版本     
多线程扫描XPortScan     
专业的扫描工具Shadow Security Scanner     
ASP漏洞集     
扫描工具Retina Network Security Scann     
快速端口扫描Shadowscan     
优秀的WEB扫描工具Nikto     
扫描Shadow Security Scanner v6.6.41     
SuperScan V4.0汉化版     
极为优秀的Shadow Security Scanner     
基于命令行下的RPC扫描器     
多线程扫描SinScan     
局域网扫描大师 V1.0     
推荐:免费短信发送工具     
IP端口扫描软件     
最新漏洞扫描器MS05051Scan     
推荐:图形界面的NMAP扫描器     
dcomrpc漏洞X-Scan23插件     
啊D网络工具包2.专用免杀版     
极速漏洞扫描攻击器[升级版]     
猎手-旁注工具     
黑客基地专用极速漏洞扫描器     
X-Scan v3.3     
超强扫描器:NMAP 3.90     
IP地址扫描器     
地址分类搜索机     
多线程后台扫描器     
超强扫描器superscan4.0      
nmap-3.81源代码(Linux平台)     
nmap-3.81源代码(FreeBSD平台)     
X-Scan-v3.3     
mysql弱口令扫描工具:mysqlweak      
DFind_v0.83扫描工具     
MySql Weak Pass Scanner     
Cain & Abel v2.68 for Win      
阿D工具包2.01      
HScan v1.20     
动网大扫描     
多线程网站后台扫描工具     
MS06040漏洞扫描器     
挖掘鸡v3.5     
BluesPortScan超快的端口扫描工具     
动网大扫描 1.0测试版     
啊D网络工具包2.1免杀版     
sql注入中文转换器     
明小子Domain3.6      
guastbook漏洞利用     
德国的SQL注射工具     
流光FluXay 5 闪亮发布!     
注入攻击综合软件包     
BBSXP论坛漏洞完全注射工具     
MS06007漏洞扫描器     
高速扫描:风雪端口扫描器     
动易2005 sp2漏洞利用工具     
webhacking-WEB渗透超级助手     
简洁高速的扫描器:HScan     
BBS论坛群发机 破解版

mssql注射辅助工具-getwebsehll      
软件名称超级扫描器nmap-4.00     
挖掘鸡 V2.2     
啊D注入工具 V2.32 免杀版     
SQL注射综合程序     
扫描器IPtools2.5破解版     
SSPort高速端口扫描器 V1.0     
局域网查看工具V1.60     
NCPH影子扫描器     
目前最完美的注入工具     
IP物理地址探测器     
网站猎手     
网络端口扫描工具     
震荡波扫描工具:Sasser Scanner     
MS04-011漏洞扫描器RetinaSasser     
SQL跨库查询动画教程     
命令行下NohackerScanner扫描器     
IP扫描IPScanner 1.79中文破解版     
嗅探监听:局域网密码查看工具1.46      
经典工具:X-Scan-v3.1     
监听工具:PromiScan v3.0     
扫描工具:FtpList 1.13     
经典漏洞扫描:X-Scan v3.0     
扫描工具:Remoxec     
数据扫描工具:Oracle Auditing Tools     
Web漏洞扫描工具Trapserver     
著名的漏洞扫描:SSS     
扫描工具:RpcScan v1.1.1     
经典的扫描工具:nmap 3.50     
漏洞扫描:GFI LANguard Scanner     
小巧的IPC扫描工具     
CC6.0扫描程序     
nmap 3.75 for win     
rootkit扫描工具:Rkdscan     
动画教程:JOEKOE留言本漏洞     
NBWS网站后台路径猜测工具     
web路径猜解工具:ScanWebPath     
未公布的动力系统漏洞演示     
SQL扫描工具:SQL ping      
IIS权限探测:IIS Write Scanner V1.0     
扫描软件SImpsons'CGI Scanner及使用教程     
LANguard Network Security Scanner 5.0     
加密工具:Morphine v1.3+GUI     
DFind v0.8     
L-ScanPort2.0      
扫描工具:Scanner     
X-Scan-v3.1-cn     
Advanced IP Scanner V1.4 汉化版     
飞狐-网络扫描工具试用版     
Linux/UNIX扫描软件:XTHC-Amap v4.6     
动画教程:动力破解任何收费漏洞     
动画教程:'or''='漏洞最新演示     
天意阿里巴巴企业商务网V3.7上传漏洞     
代理猎手获取ADSL帐号冲Q币     
扫描器:nessuswx-1.4.4-install      
IP扫描软件:Angry IP Scanner     
端口/漏洞/组件扫描工具:DFind v0.6     
可获取Web Server类型的端口扫描器     
135端口扫描器RpcScan v1.2.1      
4899空口令探测器     
经典工具:namp v3.50 命令行版      
猜解后台路径工具     
流光5.0黑客基地专用破解版     
免验证版NBSI(附加扫描器)     
U-scan(UNICODE漏洞扫描器)     
自定义多线程后台扫描程序:ScanLogin     
75款全球强劲工具大集合之一 Nessus     
75款全球强劲工具大集合之二 NessusWX     
Accessdiver 汉化版+使用教程     
优秀的X-way     
75款全球强劲工具大集合之十八SuperScan     
75款全球强劲工具大集合之十六Nikto     
75款全球强劲工具大集合之十一Libwhisker     
75款全球强劲工具大集合之十二JOHN16     
75款全球强劲工具大集合之十二John     
75款全球强劲工具大集合之十三SSH     
75款全球强劲工具大集合之十五Tripwire     
最快的端口扫描工具     
高速端口扫描PortScanner源代码


ScanMs Tool     
PHP扫描器

posted @ 2014-05-21 01:18 奋斗成就男人 阅读(2820) | 评论 (1)编辑 收藏

MySQL创建用户与授权方法

注:我的运行环境是widnows xp professional + MySQL5.0

一, 创建用户:

命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';

说 明:username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器.

例子: CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '';
CREATE USER 'pig'@'%';

二,授权:

命令:GRANT privileges ON databasename.tablename TO 'username'@'host'

说 明: privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).如果要授予所的权限则使用ALL.;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.

例子: GRANT SELECT, INSERT ON test.user TO 'pig'@'%';
GRANT ALL ON *.* TO 'pig'@'%';

注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;

三.设置与更改用户密码

命令:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');如果是当前登陆用户用SET PASSWORD = PASSWORD("newpassword");

例子: SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456");

四.撤销用户权限

命令: REVOKE privilege ON databasename.tablename FROM 'username'@'host';

说明: privilege, databasename, tablename - 同授权部分.

例子: REVOKE SELECT ON *.* FROM 'pig'@'%';

注 意: 假如你在给用户'pig'@'%'授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO 'pig'@'%', 则在使用REVOKE SELECT ON *.* FROM 'pig'@'%';命令并不能撤销该用户对test数据库中user表的SELECT 操作.相反,如果授权使用的是GRANT SELECT ON *.* TO 'pig'@'%';则REVOKE SELECT ON test.user FROM 'pig'@'%';命令也不能撤销该用户对test数据库中user表的Select 权限.

具体信息可以用命令SHOW GRANTS FOR 'pig'@'%'; 查看.

五.删除用户

命令: DROP USER 'username'@'host';

附表:在MySQL中的操作权限

ALTER Allows use of ALTER TABLE.
ALTER ROUTINE Alters or drops stored routines.
CREATE Allows use of CREATE TABLE.
CREATE ROUTINE Creates stored routines.
CREATE TEMPORARY TABLE Allows use of CREATE TEMPORARY TABLE.
CREATE USER Allows use of CREATE USER, DROP USER, RENAME USER, and REVOKE ALL PRIVILEGES.
CREATE VIEW Allows use of CREATE VIEW.
DELETE Allows use of DELETE.
DROP Allows use of DROP TABLE.
EXECUTE Allows the user to run stored routines.
FILE Allows use of SELECT... INTO OUTFILE and LOAD DATA INFILE.
INDEX Allows use of CREATE INDEX and DROP INDEX.
INSERT Allows use of INSERT.
LOCK TABLES Allows use of LOCK TABLES on tables for which the user also has SELECT privileges.
PROCESS Allows use of SHOW FULL PROCESSLIST.
RELOAD Allows use of FLUSH.
REPLICATION Allows the user to ask where slave or master
CLIENT servers are.
REPLICATION SLAVE Needed for replication slaves.
SELECT Allows use of SELECT.
SHOW DATABASES Allows use of SHOW DATABASES.
SHOW VIEW Allows use of SHOW CREATE VIEW.
SHUTDOWN Allows use of mysqladmin shutdown.
SUPER Allows use of CHANGE MASTER, KILL, PURGE MASTER LOGS, and SET GLOBAL SQL statements. Allows mysqladmin debug command. Allows one extra connection to be made if maximum connections are reached.
UPDATE Allows use of UPDATE.
USAGE Allows connection without any specific privileges.

posted @ 2014-05-18 01:06 奋斗成就男人 阅读(243) | 评论 (0)编辑 收藏

MySQL 请选择合适的列

思维导图
点击图片,可查看大图。

介绍
 
情况:如果你的表结构设计不良或你的索引设计不佳,那么请你优化你的表结构设计和给予合适的索引,这样你的查询性能就能提高几个数量级。——数据越大,索引的价值越能体现出来。
 
我们要提高性能,需要考虑的因素:
1、设计架构
2、设计索引
3、评估查询性能
 

今天要讲的是表列的设计,暂不谈索引设计。我会在下一章讲索引设计。
 
选择数据类型
 
选择正确的数据类型,对于提高性能至关重要。
下面给出几种原则,有利于帮助你选择何种类型。
 
1、更小通常更好。
  使用最小的数据类型。——更少的磁盘空间,内存和CPU缓存。而且需要的CPU的周期也更少。
 
2、简单就好。
  整数代价小于字符。——因为字符集和排序规则使字符比较更复杂。
  1>mysql内建类型(如timestamp,date)优于使用字符串保存。
  2>使用整数保存ip地址。
 
3、尽量避免NULL——如果计划对列进行索引,尽量避免把列设置为NULL
  尽可能把字段定义为NOT NULL。——可以放置一个默认值,如‘',0,特殊字符串。
  原因:
    (1)MYSQL难以优化NULL列。NULL列会使索引,索引统计和值更加复杂。
    (2)NULL列需要更多的存储空间,还需要在MYSQL内部进行特殊处理。
    (3)NULL列加索引,每条记录都需要一个额外的字节,还导致MyISAM中固定大小的索引变成可变大小的索引。
 

决定列的数据类型,我们应该遵循下面两步。

第一步、大致决定数据类型。——判断是数字,字符串还是时间等。这通常很直观。

第二步、确定特定的类型。

  很多数据类型能够保存同类型的数据,但是我们要发现,他们在存储的范围,精度和物理空间之间的差别(磁盘或内存空间)。如:datetime和timestamp能保存同样类型的数据:日期和时间。——timestamp使用datetime一半的空间;能保存时区;拥有特殊的自动更新能力。 

品味数据类型
 
整数
 
1、存储类型——数据范围为-2^(n-1)到2^(n-1)-1,这里的n是所需存储空间的位数。
     类型名称    占用位数      数据范围    TINYINT     8   -2^7 ~ 2^7-1   SMALLINT     16     -2^15~2^15-1     MEDIUMINT       24      -2^23~2^23-1   INT     32   -2^31~2^23-1   BIGINT     64    -2^63~2^63-1

 2、unsigned属性表示不允许负数,并大致把正上限提高了一倍。如TINYINT UNSIGNED保存的范围为0到255而不是-127到128

 

3、MYSQL对整数类型定义宽度,比如int(1)和int(22)对于存储和计算是一样的。只规定了MYSQL的交互工具(如命令行客户端)用来显示字符的个数。

 

实数
 
实数有分数部分(小数部分)。
存储类型:FLOAT和DOUBLE,DECIMAL。
占用大小:FLOAT 4个字节,DOUBLE 8个字节。DECIMAL受到MYSQL版本影响,早期版本254个数字,5.0以上65个数字。
区别:1、FLOAT和DOUBLE支持标准浮点运算进行近似计算。
   2、DECIMAL进行DECIMAL运算,CPU并不支持对它进行直接计算。浮点运算会快一点,因为计算直接在CPU上进行。
     3、DECIMAL只是一个存储格式,在计算时会被转换为DOUBLE类型。
   4、DECIMAL(18,9)使用9个字节,小数点前4个字节,小数点1个字节,小数点后4个字节。
   5、DECIMAL只有对小数进行精确计算的时候才使用它,如保存金融数据。
 

 
字符串类型
 
1、varchar
  (1)保存可变长字符串。
    理解:比固定长度占用更少的存储空间,因为它只占用自己需要的空间。例外情况:使用ROW_FORMAT=FIXED创建的MyISAM表,它为每行使用固定长度的空间,可能会造成浪费。
  (2)存储长度信息。如果定义的列小于或等于255,则使用1个字节存储长度值,假设使用latin1字符集,如varchar(10)将占用11个字节的存储空间。反过来,varchar(1000),则占用1002个字节的存储空间。
  (3)节约空间,对性能有帮助。
  (4)5.0版本以上,无论是取值还是保存,MySQL都会保留字符串末尾的空格。
只分配真正需要的空间
使用varchar(5)和varchar(200)保存'hello'占用空间是一样的。——这里应该指的是磁盘上的空间。
那么使用较短列有何优势?——巨大的优势
  较大的列会使用更多的内存,因为MySQL通常会分配固定大小的内存块(如varchar(200)会用200个字符大小的内存空间)来保存值(然后对值进行trim操作,最后放入磁盘)或取值。——这对排序或使用基于内存的临时表尤其不好。

2、char
  (1)固定长度。
  (2)保存值时,去掉末尾的空格。

             咱们再看看varchar

  (3)char常用于很短字符串或长度近似相同的字符串的时候很有用。如存储用户密码的MD5哈希值,它的长度总是一样的。
  char优于varchar的地方?
  1>> 对于经常改变的值,char优于varchar,因为固定长度行不容易产生碎片。——当最长长度远大于平均长度,并且很少发生更新的时候,通常适合使用varchar。
  2>>对于很短的列,char的效率也是高于varchar的。如对于单字节字符集(如latin1),char(1)只会占用1个字节,而varchar(2)会占用2个字节(有一个字节用来存储长度的信息)。
 

 
 3、text
用于保存大量数据。
  (1)InnoDB在它们较大的时候会使用“外部”存储区域来进行保存。——所以需要足够的外部存储空间来保存实际的值。
  (2)排序方式不同于其他字符类型,不会按照完整长度进行排序,而只是按照max_sort_length规定的前若干个字节进行排序。
 

 
4、使用ENUM代替字符串类型
  (1)ENUM列可以存储65 535个不同的字符串。
  (2)以紧凑方式保存。根据列表中值的数量,把它们压缩到1到2个字节中。
  (3)MySQL在内部把每个值都保存为整数,以表示值在列表中的位置。
  (4)保留了一份“查找表”,来表示整数和字符串在表的.frm文件中的映射关系。
  (5)ENUM字符列是固定的,添加、删除字符串须使用ALTER TABLE。
  (6)使用案例:权限表中使用ENUM来保存Y值和N值。
 使用方法:

             

在对enum列使用order by的时候,是按数字排序的,而不是字符串排序。

日期和时间类型

DATETIME:保存大范围的值。封装格式:YYYYMMDDHHMMSS。——与时区无关,使用8字节存储空间。

TIMESTAMP:保存自1970年1月1日午夜(格林尼治标准时间)以来的秒数。——使用4字节存储空间。

通常使用TIMESTAMP,它比DATETIME更节约空间。有时人们把Unix的时间戳保存为整数值,但是这通常没有任何好处。——这种格式处理起来不太方便,我们并不推荐它。

 
 
 经验交谈
 
  1、我们在为列选择数据类型的时候,不仅要考虑存储类型大小,还要考虑MySQL如何对它们进行计算和比较。例如:MySQL在内部把ENUM和SET类型保存为整数,但是在比较的时候把它们转换为字符串。
 
  2、我们要在相关表中使用同样的类型,类型之间要精确匹配,包括诸如UNSIGNED这样的属性。
 
  3、混合不同的数据类型会导致性能问题,即使没有性能问题,隐式的类型转换也能导致难以察觉的错误。
 
  4、选择最小的数据类型要考虑将来留出的增长空间。如,中国的省份,我们知道不会有成千上万个,因此不必用INT。TINYINT就足够了,它比INT小3字节。
 
  5、整数通常是最佳的数据类型,因为它速度快,并且能使用AUTO_INCREMENT。
 
  6、要尽可能避免字符串做为列的数据类型,因为它们占用了很多空间并且通常必整数类型要慢。MyISAM默认情况下为字符串使用了压缩索引,这使查找更为缓慢。

posted @ 2014-05-18 01:05 奋斗成就男人 阅读(204) | 评论 (0)编辑 收藏

仅列出标题
共23页: 上一页 1 2 3 4 5 6 7 8 9 下一页 Last