一切福田,不離方寸,從心而覓,感無不通。

Category Archives: Programming Language

WordPress伪静态怎么实现

在用wordpress做固定链接想实现静态化的时候,有时候会出现死链。这个时候就需要设置一下WordPress的伪静态了。 工具/原料 wordpress、ftp软件 步骤/方法 1 新建一个404.php文件,通过ftp软件上传到网站根目录web下,代码如下: <?php $pos = strrpos($qs, '://'); $pos = strpos($qs, '/', $pos + 4); $_SERVER['REQUEST_URI'] = substr($qs, $pos); $_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI']; include('index.php'); ?> 2 登录虚拟主机设置下404出错页 3 WordPress控制面板设置固定链接:控制面板-设置-固定链接-自定义结构 4 想设置其他链接格式,可参考以下结构标签: %year%:日志发表的年份,四位数字,如2009 %monthnum%:日志发表的月份,如05 %day%:日志发表的日期,如28 %hour%:日志发表的时间(小时),如15 %minute%:日志发表的时间(分钟),如43 %second%:日志发表的时间(秒),如33 %postname%:日志标题的缩略版本(日志/页面编辑界面上的日志别名)。因此“This Is A Great Post!”在URI中会变成this-is-a-great-post。 %post_id%:日志的唯一ID,如423 %category%:分类名称的缩略版本(添加新分类/编辑界面上的分类别名)。嵌套的子分类会作为嵌套子目录出现在URI中。出于运行方面的考虑,不推荐以%category%作为固定链接的起始部分。 %tag%:标签名称的缩略版本(添加新标签/编辑界面上的标签别名)。出于运行方面的考虑,不推荐以%tag%作为固定链接的起始部分。 %author%:作者名称的缩略版本。 转自:http://jingyan.baidu.com/article/4f7d5712824b4b1a201927bf.html

龙生   05 Aug 2013
View Details

c#+mysql 中文乱码

遇到一个奇怪的问题,C#读取mysql中文正常,写入时发生乱码 网上查阅原因,发现如下信息 ——————————————————————— 一、错误读出 现象:一个已经存在数据的MySQL数据库,该数据库的数据用系统中其它软件、网页查看均正常,使用MySQLcc之类的客户端查看也正常,可是在新写的网页中总是显示乱码。 分析:其它系统都可以正常查看数据,说明数据本身是没有问题的。在网页中显示乱码,一定是网页的编码字符集和获取到的数据的编码字符集不一至。比如数据库的字符集是UTF8的,而网页的字符集是gb2312的,那么网页就会把UTF8编码的字体串当作gb2312的来处理,结果产生乱码。 解决办法:在连接数据库时,设定连接字符集,使连接字符集和当前网页或客户端程序使用的字符集一致。可以使用MySQL的Set Names指令设定连接字符集。假设网页的字体集为gb2312。在连接MySQL后,在连接上执行如下SQL语句: Set Names ‘gb2312’ 在以后所有这个连接上的查询,MySQL都会自动把数据库中的数据转换成gb2312编码格式传过来。 二、错误写入 现象:一个网页或程序向一个MySQL数据库中写数据,写完后,这个网页或程序自己可以正常读取数据,而从其它客户端或网页中读取数据都是乱码。 分析:其它的正常的客户端出现乱码,说明数据库中的字符编码不对。写数据的那个网页能正常读取,是因为写和读都用了错误的编码格式,将错就错,反而能读出正确的数据了。比如数据库中设定的字符集为UTF8,而网页使用gb2312编码执行了插入数据的SQL,那么MySQL就会把这些gb2312的编码当成是UTF8的编码写进数据库。当其它客户端访问数据时,会按系统的设定,以UTF8 格式读取数据,而数据其实是使用gb2312编码的,结果就出现了乱码。只有写数据的那个网页会把这些数据当成gb2312的,也只有那个网页能正常显示数据。 解决办法:同第一条,即:使用Set Names指令设定连接字符集。 在设定了连接字符体的连接上执行数据操作,所有的数据都将被MySQL自动、正确地转换为数据库中设定的编码格式保存。 通过以上两点,我们可以看到,只要在连接MySQL时,正确地设定了字符集,无论数据库本身是使用什么格式编码的,都能得到正确的结果。也许有人会以为写数据时设定的字符集必需和读数据时一致,事实上完全没有必要。程序所要做的只是告诉 MySQL,目前操作MySQL使用的是什么字符集即可。因为MySQL会自动完成如下的转换工作: 写数据库时用的字符集-->存诸数据的字符集-->读取数据的字符集。 笔者以为MySQL对多语言字符集的处理是非常优秀的,并且每次建立到MySQL的连接都会立刻使用Set Names设定字符集,然而最近还是出现了一回乱码,如下面所述。 三、无知的程序包 现象:使用C#编程,使用MySQL提供的连接程序库包访问数据库,使用 MySqlConnection类连接数据库,连接之后立刻调用Set Names设定连接字符串,然后使用MySqlCommand类执行SQL,并使用MySqlDataReader读取数查询结果。然而,当我调用 MySqlDataReader的成员方法GetString获取数据的时候,发现得到的全是乱码。百思不得其解。 分析:经仔细检查,确信问题没有出在MySQL连接上面,这时我想到了C#中对 string类型的处理。在C#中字符串和C/C++中有很大不同。在C/C++中一个字符就是一个字节,而在C#中,按不同的编码格式,一个字符也可以是多个字节的。比如”啊”就是一个字符,如果一个字符串s=”啊”; 那么s的Length属性为1,而不是C/C++中的2。我想MySQL程序包也许并不知道连接上传过来的字符是什么编码的,它因为无知,所以只是按单字节字符把这些数据组织成一个string,这个生成的string就是我得到的乱码。事实上也的确是这样。 解决办法:把这些数据重新组织起来,然后使用正确的编码方法重新生成string。C#中System.Text包内的Encoding类提供了字符集的编/解码方法。 1)首先还是设定连接字符集,以确认收到的字符的编码方式。 2)把GetString得到的字符串转换到byte数组中。 3)使用Systec.Text.Encoding包中相应字符集的解码方法GetString得到新的字符串。 为了通用性,我们使用System.Text.Encoding的默认字符集。连接数据库时,设置数据库连接字符集使用的SQL指令strSetCharset为如下值: string strSetCharset = “Set Names ” + System. Text. Encoding .Default. HeaderName; 在获取数据时,使用下面的函数得到真正的字符串: private string DBStringToNormal(string dbStr)        {          byte[] str = new byte[dbStr.Length];          for (int i = 0; i < dbStr.Length; ++i)             str[i] = (byte)(dbStr[i]);     return System.Text.Encoding.Default.GetString(str, 0, […]

龙生   05 Aug 2013
View Details

WordPress数据库中的表、字段、类型及说明 [3]

前面的第一、第二部分已经对Wordpress中的十张表里的七张进行了说明,这里要介绍的是剩下的三张表的有关情况。 wp_posts: 用于保存你所有的文章(posts)的相关信息的表,非常的重要。一般来讲,它存储的数据是最多的。一共包括了21个字段。 ID – 每篇文章的唯一ID,bigint(20)值,附加属性auto_increment。 post_author – 每篇文章的作者的编号,int(4)值,应该对应的是wp_users.ID。 post_date – 每篇文章发表的时间,datetime值。它是GMT时间加上时区偏移量的结果。 post_date_gmt – 每篇文章发表时的GMT(格林威治)时间,datetime值。 post_content – 每篇文章的具体内容,longtext值。你在后台文章编辑页面中写入的所有内容都放在这里。 post_title – 文章的标题,text值。 post_category – 文章所属分类,int(4)值。 post_excerpt – 文章摘要,text值。 post_status – 文章当前的状态,枚举enum(’publish’,’draft’,’private’,’static’,’object’)值,publish为已 发表,draft为草稿,private为私人内容(不会被公开) ,static(不详),object(不详)。默认为publish。 comment_status – 评论设置的状态,也是枚举enum(’open’,’closed’,’registered_only’)值,open为允许评论,closed为不允 许评论,registered_only为只有注册用户方可评论。默认为open,即人人都可以评论。 ping_status – ping状态,枚举enum(’open’,’closed’)值,open指打开pingback功能,closed为关闭。默认值是open。 post_password – 文章密码,varchar(20)值。文章编辑才可为文章设定一个密码,凭这个密码才能对文章进行重新强加或修改。 post_name – 文章名,varchar(200)值。这通常是用在生成permalink时,标识某篇文章的一段文本或数字,也即post slug。 to_ping – 强制该文章去ping某个URI。text值。 pinged – 该文章被pingback的历史记录,text值,为一个个的URI。 post_modified – 文章最后修改的时间,datetime值,它是GMT时间加上时区偏移量的结果。 post_modified_gmt – 文章最后修改的GMT时间,datetime值。 post_content_filtered – 不详,text值。  post_parent – 文章的上级文章的ID,int(11)值,对应的是wp_posts.ID。默认为0,即没有上级文章。 guid – 这是每篇文章的一个地址,varchar(255)值。默认是这样的形式: http://your.blog.site/?p=1,如果你形成permalink功能,则通常会是: 你的Wordpress站点地址+文章名。 menu_order – 不详,int(11)值,默认为0。 post_type – 文章类型,具体不详,varchar(100)值。默认为0。 post_mime_type – 不详。varchar(100)值。 comment_count – 评论计数,具体用途不详,bigint(20)值。   wp_usermeta : 用于保存用户元信息(meta)的表,共4个字段: umeta_id – 元信息ID,bigint(20)值,附加属性auto_increment。 […]

龙生   05 Aug 2013
View Details

DataGridView控件使用大全

DataGridView控件 DataGridView是用于Windows Froms 2.0的新网格控件。它可以取代先前版本中DataGrid控件,它易于使用并高度可定制,支持很多我们的用户需要的特性。 关于本文档: 本文档不准备面面俱到地介绍DataGridView,而是着眼于深入地介绍一些技术点的高级特性。 本文档按逻辑分为5个章节,首先是结构和特性的概览,其次是内置的列/单元格类型的介绍,再次是数据操作相关的内容,然后是主要特性的综述,最后是最佳实践。 大部分章节含有一个“Q & A”部分,来回答该章节相关的一些常见问题。注意,某些问题会由于知识点的关联性重复出现在多个章节。这些问题、答案及其附带的示例代码都包含在本文档的附录部分。 内容 1     何为DataGridView.. 4 1.1    DataGridView和DataGrid 之间的区别… 4 1.2    DataGridView的亮点… 5 2     DataGridView的结构… 6 2.1    结构元素… 6 2.2    单元格和组… 6 2.3    DataGridView的单元格… 6 2.3.1      DataGridViewCell的工作机制… 7 2.4    DataGridView的列… 9 2.5    DataGridView的编辑控件… 9 2.6    DataGridView的行… 10 3     列/单元格类型揭密… 11 3.1    DataGridViewTextBoxColumn. 11 3.2    DataGridViewCheckBoxColumn. 12 3.3    DataGridViewImageColumn. 12 3.4    DataGridViewButtonColumn. 13 3.5    DataGridViewComboBoxColumn. 13 3.5.1      DataError与ComboBox列… 13 3.6    DataGridViewLinkColumn. 14 4     操作数据… 15 4.1    数据输入和验证的相关事件… 15 4.1.1      数据验证相关事件的顺序… 15 4.1.2      验证数据… 15 4.1.3      在新行中的数据输入… 16 4.2    关于Null值… 19 4.2.1      […]

龙生   05 Aug 2013
View Details

Visual Studio 2012 Ultimate旗舰版序列号

Visual Studio 2012 Ultimate旗舰版序列号: YKCW6-BPFPF-BT8C9-7DCTH-QXGWC RBCXF-CVBGR-382MK-DFHJ4-C69G8 YQ7PR-QTHDM-HCBCV-9GKGG-TB2TM 点击帮助(help)-注册产品(Register Product)-输入Key就可以了

龙生   09 Jul 2013
View Details

20 个实用的 PHP 库(图表、图片、数据等)

摘要:PHP开发技术在这几年依然比较火热,也有越来越多的开发者加入到了PHP开发阵营,在复杂的框架和冗余的代码面前,选择合适的PHP库就显得 尤为重要,优秀的PHP库可以为你节省很多代码和编码时间。 下面是一些非常有用的PHP类库,相信一定可以为你的WEB开发提供更好和更为快速的方法。 图表库 下面的类库可以让你很简的创建复杂的图表和图片。当然,它们需要GD库的支持。 pChart – 一个可以创建统计图的库。 Libchart – 这也是一个简单的统计图库。 JpGraph – 一个面向对象的图片创建类。 Open Flash Chart – 这是一个基于Flash的统计图。 RSS 解析 解释RSS并是一件很单调的事情,不过幸好你有下面的类库可以帮助你方便地读取RSS的Feed。 MagpieRSS – 开源的PHP版RSS解析器,据说功能强大,未验证。 SimplePie – 这是一个非常快速,而且易用的RSS和Atom 解析库。 缩略图生成 phpThumb – 功能很强大,如何强大还是自己去体会吧。 支付 你的网站需要处理支付方面的事情?需要一个和支付网关的程序?下面这个程序可以帮到你。 PHP Payment Library – 支持Paypal, Authorize.net 和2Checkout (2CO) OpenID PHP-OpenID – 支持OpenID的一个PHP库。OpenID是帮助你使用相同的用户名和口令登录不同的网站的一种解决方案。如果你对OpenID不熟悉的话,你可以到这里看看:http://openid.net.cn/ 数据为抽象/对象关系映射ORM ADOdb – 数据库抽象 Doctrine – 对象关系映射Object relational mapper (ORM) ,需要 PHP 5.2.3+ 版本,一个非常强大的database abstraction layer (DBAL). Propel – 对象关系映射框架- PHP5 Outlet – 也是关于对象关系映射的一个工具。 注:对象关系映射(Object Relational Mapping,简称ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形 式。 这也同时暗示者额外的执行开销;然而,如果ORM作为一种中间件实现,则会有很多机会做优化,而这些在手写的持久层并不存在。 更重要的是用于控制转换的元数据需要提供和管理;但是同样,这些花费要比维护手写的方案要少;而且就算是遵守ODMG规范的对象数据库依然需要类级别的元 数据。 PDF 生成器 FPDF – 这量一个可以让你生成PDF的纯PHP类库。 Excel 相关 你的站点需要生成Excel?没有问题,下面这两个类库可以让你轻松做到这一点。 php-excel […]

龙生   02 Jul 2013
View Details

8 New PHP Tools and Applications for Developers

If you are a PHP developer or graphic web designer you must be aware and know about the basic tools one requires by which to perform certain web related tasks. However, most experienced web developers and designers constantly look for the new tools which they can use to make their workflow and web related tasks easier, faster, and better. In this article we have collected a few of the best PHP Tools and Applications to assist you within your work related tasks. We hope you will find them […]

龙生   02 Jul 2013
View Details

8 个最佳 PHP 库

PHP标准库 (SPL)的目的就是提供一组接口,让开发者在PHP5中充分利用面向对象编程。因此本文我们搜集了8个最好的,能辅助开发者简化他们的工作,为他们的开发任务服务的PHP库。 如果你喜欢本文,也许你对我们的其他文章感兴趣:8个给开发者的最好的PHP工具和应用 1. Whoops : 更好的php错误报告库 Whoops是一个易于处理和调试错误的PHP库 。它提供基于堆栈的的错误处理和好看的错误界面。它有个简单的API来处理异常,跟踪帧和数据,并能和任何框架整合(随时可用的集成端和Silex)。 Source 2. PhpFastCache phpFastCache 是一个开源的 PHP 缓存库,只提供一个简单的 PHP 文件,可方便集成到已有项目,支持多种缓存方法,包括:apc, memcache, memcached, wincache, files, pdo and mpdo。可通过简单的 API 来定义缓存的有效时间。 Source 3. Eden : 功能强大的 PHP 库 Eden是一个开源且免费的PHP快速开发类库。它包含很多组件用来自动加载、事件驱动、文档系统、缓存、模板、国际化、数据库、web服务、支付网关、装载和云服务技术。为了给我们最好的选择,他已经将现有的函数实现了与谷歌服务(Youtube, Drive, Contacts, Analytics, Checkout, Maps),Facebook(脸谱), Twitter(推特), Tumblr(轻博客), PayPal(贝宝), Authorize.net, FedEx(联邦快递), UPS(联合包裹服务公司), Amazon + Rackspace Clouds(亚马逊+Rackspace 云)等服务的交互。 Source 4. Php Error PHP Error 是一个开源的 PHP 库,用于转换标准的 PHP 错误信息,主要用于开发过程中的调试。PHP Error 紧密集成到 PHP 环境中,显示带语法高亮的错误提示。 Source 5. Detector Detector是一个开源的PHP类库用于检测关于用户的浏览器环境的许多东西。它可以获得浏览器的使用和浏览器的html5 css3功能,分析是否移动电话、平板电脑、桌面或网页爬虫和其他项如:颜色深度, 视口尺寸、cookie等支持。类库可以自动适应新的浏览器、版本和设备对每一个浏览器使用独特的用户代理字符。 Source 6. Opauth Opauth 是一个开源的 PHP 库,提供了 OAuth 认证的支持,让你无需关注不同 Provider 之间的差别,提供统一标准的访问方法。目前支持 Google、Twitter 和 Facebook,其他的 Provider 支持也将陆续提供。同时也支持处理任何 […]

龙生   02 Jul 2013
View Details

C#.NET Array扩展 Join/Compress/Decompress/Deserialize/IsInArray/Action

转自:http://www.cnblogs.com/livexy/archive/2010/07/06/1772502.html

龙生   29 Jun 2013
View Details

深入浅出Node.js(八):Connect模块解析(之二)静态文件中间件

上一篇专栏简单介绍了Connect模块的基本架构,它的执行模型十分简单,中间件机制也使得它十分易于扩展,具备良好的可伸缩性。在Connect的良好机制下,我们本章开始将逐步解开Connect生态圈中中间件部分,这部分给予Connect良好的功能扩展。 静态文件中间件 也许你还记得我曾经写过的Node.js静态文件服务器实战,那篇文章中我叙述了如何利用Node.js实现一个静态文件服务器的许多技术细节,包括路由实现,MIME,缓存控制,传输压缩,安全、欢迎页、断点续传等。但是这里我们不需要去亲自处理细节,Connect的static中间件为我们提供上述所有功能。代码只需寥寥3行即可:

在项目中需要临时搭建静态服务器,也无需安装apache之类的服务器,通过NPM安装Connect之后,三行代码即可解决需求。这里需要提及的是在使用该模块的一点性能相关的细节。 动静分离 前一章提及,app.use()方法在没有指定路由信息时,相当于app.use("/", middleware)。这意味着静态文件中间件将会在处理所有路径的请求。在动静态请求混杂的场景下,静态中间件会在动态请求时也调用fs.stat来检测文件系统是否存在静态文件。这造成了不必要的系统调用,使得性能降低。 解决影响性能的方法既是动静分离。利用路由检测,避免不必要的系统调用,可以有效降低对动态请求的性能影响。

在大型的应用中,动静分离通常无需到一个Node.js实例中进行,CDN的方式直接在域名上将请求分离。小型应用中,适当的进行动静分离即可避免不必要的性能损耗。 缓存策略 缓存策略包含客户端和服务端两个部分。客户端的缓存,主要是利用浏览器对HTTP协议响应头中cache-control和expires字段的支持。浏览器在得到明确的相应头后,会将文件缓存在本地,依据cache-control和expires的值进行相应的过期策略。这使得重复访问的过程中,浏览器可以从本地缓存中读取文件,而无需从网络读取文件,提升加载速度,也可以降低对服务器的压力。默认情况下静态中间件的最大缓存时设置为0,意味着它在浏览器关闭后就被清除。这显然不是我们所期望的结果。除非是在开发环境可以无视maxAge的设置外,生产环境请务必设置缓存,因为它能有效节省网络带宽。

maxAge选项的单位为毫秒。YUI3的CDN服务器设置过期时间为10年,是一个值得参考的值。静态文件如果在客户端被缓存,在需要清除缓存的时候,又该如何清除呢?这里的实现方法较多,一种较为推荐的做法是为文件进行md5处理。

当文件内容产生改变时,md5值也将发生改变,浏览器根据URL的不同会重新获取静态文件。md5的方式可以避免不必要的缓存清除,也能精确清除缓存。由于浏览器本身缓存容量的限制,尽管我们可能设置了10年的过期时间,但是也许两天之后就被新的静态文件挤出了本地缓存。这将持续引起静态服务器的响应,也即意味着,客户端缓存并不能完全解决降低服务器压力的问题。为了解决静态服务器重复读取磁盘造成的压力,这里需要引出第二个相关的中间件:staticCache。

这是一个提供上层缓存功能的中间件,能够将磁盘中的文件加载到内存中,以提高响应速度和提高性能。它的官方测试数据如下:

另一个专门用于静态文件托管的模块叫node-static,其性能是Connect静态文件中间件的效率的两倍。但是在缓存中间件的协助下,可以弥补性能损失。事实上,这个中间件在生产环境下并不推荐被使用,而且它将在Connect 3.0版本中被移除。但是它的实现中有值得玩味的地方,这有助于我们认识Node.js模型的优缺点。staticCache中间件有两个主要的选项:maxObjects和maxLength。代表的是能存储多少个文件和单个文件的最大尺寸,其默认值为128和256kb。为何会有这两个选项的设定,原因在于V8有内存限制的原因,作为缓存,如果没有良好的过期策略,缓存将会无限增加,直到内存溢出。设置存储数量和单个文件大小后,可以有效抑制缓存区的大小。事实上,该缓存还存在的缺陷是单机情况下,通常为了有效利用CPU,Node.js实例并不只有一个,多个实例进程之间将会存在冗余的缓存占用,这对于内存使用而言是浪费的。除此之外,V8的垃圾回收机制是暂停JavaScript线程执行,通过扫描的方式决定是否回收对象。如果缓存对象过大,键太多,则扫描的时间会增加,会引起JavaScript响应业务逻辑的速度变慢。但是这个模块并非没有存在的意义,上述提及的缺陷大多都是V8内存限制和Node.js单线程的原因。解决该问题的方式则变得明了。风险转移是Node.js中常用于解决资源不足问题的方式,尤其是内存方面的问题。将缓存点,从Node.js实例进程中转移到第三方成熟的缓存中去即可。这可以保证: 缓存内容不冗余。 集中式缓存,减少不一致性的发生。 缓存的算法更优秀以保持较高的命中率。 让Node.js保持轻量,以解决它更擅长的问题。 Connect推荐服务器端缓存采用varnish这样的成熟缓存代理。而笔者目前的项目则是通过Redis来完成后端缓存的任务。 参考内容 https://www.varnish-cache.org/releases http://www.senchalabs.org/connect/static.html http://www.senchalabs.org/connect/staticCache.html 转自:http://www.infoq.com/cn/articles/nodejs-8-connect-module-part-2

龙生   28 Jun 2013
View Details
1 148 149 150 175