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

Category Archives: Programming Language

[转]字符串和二进制互转的例子

龙生   19 Apr 2013
View Details

SpaceBuilder4.0数据库说明(部分)

spb_Announcements 公告表 Id 自动编号 Subject 主题 SubjectStyle 主题样式 Body 公告主体(可选) IsHyperLink 是否链接 HyperLinkUrl 链接URI(只有当IsHyperLink为1时才有效) EnabledDescription 是否启用描述(当 此项为1时,body 才可输入内容) ReleaseDate 发布日期 ExpiredDate 失效日期 LastModified 更新日期 CreateDate 入库日期 UserId 用户Id(公告发布者) DisplayOrder 显示排序 DisplayArea 显示区域(如频道、用户中心) spb_BarPosts 贴吧-回复表 spb_BarRatings spb_BarSectionManagers spb_BarSections 贴吧-吧表 spb_BarThreads 贴吧-帖子表

龙生   12 Apr 2013
View Details

Apache和php 隐藏头信息

一、apacheapache 的 httpd.conf 有两个配置可以控制是否显示服务器信息给用户。ServerTokensServerSignature默认条件下会把apache版本 系统 模块都显示出来 (HTTP 返回头)设置为:ServerTokens ProductOnlyServerSignature Off就隐藏Apache的Apache Version信息。还有如果列举目录的话 会显示域名信息(文件列表正文)如果不想要就可以调这两个参数ServerTokensServerSignatureServerSignature On|Off|EmailServerTokens Minimal|ProductOnly|OS|FullServerTokens Prod[uctOnly]Server sends (e.g.): Server: ApacheServerTokens Min[imal]Server sends (e.g.): Server: Apache/1.3.0ServerTokens OSServer sends (e.g.): Server: Apache/1.3.0 (Unix)ServerTokens Full (or not specified)ServerSignature控制由系统生成的页面(错误信息,mod_proxy ftp directory listing等等)的页脚中如何显示信息。可在全局设置文件中控制,或是通过.htaccess文件控制默认为”off”(ServerSignature Off),有些Linux发行版本可能会打开这个阀门,比如Debian在默认的虚拟主机上默认将这个阀门设置为开放全局阀门的阀值会被虚拟主机或目录单位的配置文件中的阀值所覆盖,所以,必须确保这样的事情不应该发生可用的阀值为下面所示:Off (default): 不输出任何页脚信息 (如同Apache1.2以及更旧版本,用于迷惑)On:输出一行关于版本号以及处于运行中的虚拟主机的ServerName (2.0.44之后的版本,由ServerTokens负责是否输出版本号)EMail: 创建一个发送给ServerAdmin的”mailto”二、隐藏 PHP 版本php.iniexpose_php On改成expose_php Off重启apache后,php版本在http头中隐藏了。三、ServerTokens 指令说明: 配置服务器HTTP回应头语法: ServerTokens Major|Minor|Minimal|ProductOnly|OS|Full默认值: ServerTokens Full上下文: 服务器配置状态: 核心模块: core此指令控制了Server回送给客户端的回应头域是否包含关于服务器OS类型和编译进的模块描述信息。ServerTokens ProductOnly服务器会发送(比如说):Server:ApacheServerTokens Major服务器会发送(比如说):Server:Apache/2ServerTokens Minor服务器会发送(比如说):Server:Apache/2.0ServerTokens Min[imal]服务器会发送(比如说):Server:Apache/2.0.41ServerTokens OS服务器会发送(比如说):Server: Apache/2.0.41 (Unix)ServerTokens Full (or not specified)服务器会发送(比如说):Server: Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2此设置将施用与整个服务器,而且不能在虚拟主机的管理层次上予以启用或禁用。ServerSignature 指令说明: 配置服务器生成页面的页脚语法: ServerSignature On|Off|EMail默认值: ServerSignature Off上下文: 服务器配置, 虚拟主机, 目录, .htaccess覆盖项: All状态: 核心模块: coreServerSignature指令允许您配置服务器端生 成文档的页脚(错误信息、mod_proxy的ftp目录列表、mod_info的输出)。您启用这个页脚的原因主要在于处于一个代理服务器链中的时候,用户基本无法辨识出究竟是链中的哪个服务器真正产生了返回的错误信息。默认的Off设定没有错误行(这样便与Apache 1.2及更旧版本兼容)。采用On会简单的增加一行关于服务器版本和正在伺服的虚拟主机的ServerName,而EMail设置会如文档中说明的那样额外创建一个指向ServerAdmin的”mailto:”部分。 转自:http://www.douban.com/note/243308080/

龙生   12 Apr 2013
View Details

CCFlow之耦合(一)

安装CCFlow就不说了,照着安装文件做,基本上没有大的问题:http://bbs.ccflow.org/showtopic-54.aspx 好不容易配置好了,开始耦合吧 按照Documents目录下的  驰骋工作流引擎-流程设计器操作手册.docx  文件中的 2.6 您的系统与ccFlow组织结构表耦合(集成) 的说明,意思是删除CCFlow中的Port_Station,Port_Dept,Port_Emp,Port_EmpStation,Port_EmpDept这五张表,再建立相对应的同样名字的五个视图就可以了 意思说得很明白了吧 可是知易行难呀 Port_Station(岗位表),这个我们系统里没有,怎么办呢?在CCFlow里的表生成Create脚本,修改一下  use 数据库名   改成我们自己的系统数据库 Port_Dept(部门表),这个问题来了,我们并没有使用CCFlow的那种部门编码方式,没办法改造我们的系统吧,加个部门编码字段:OrgBianHao,修改相关代码,让系统新加的部门可以生成编码。 Port_Emp(人员表),需要(No编号,Name名称, Pass密码, FK_Dept所在部门编号, SID登陆安全ID),这个因为我们用的是部门表的ID,而不是编码,所以要新加一个字段OrgBianHao来存储相关的部门编码,我们的密码是加密的,所以~~,加个字段存储明文密码,SID也没有,这个也加上。这里我用的是,No用的是用户名,Name用的是真实姓名. Port_EmpStation 这个我们系统没有,照建一个就是了 Port_EmpDept  这个简单,从我们的人员表取用户ID和部门编号两个字段放进去就好了 这其中发生了两次ccflow耦合问题:无法更改 'XXX',因为它不是表。的问题 一次是:ccflow耦合问题:无法更改 'Port_Emp',因为它不是表。 这个问题在帖子中解决了,是因为少个字段。 再一次是在点 设置  的时候又报:   无法更改 'Port_EmpDept',因为它不是表。 后来经朋哥指点,原来是因为FK_Emp是整形的问题,把这个字段转换成字符串型的,OK,进去是没问题了。 要完全看起来像是一个系统,这样还不行,得继续改,研究去了,完了再和大家分享。 http://www.cnblogs.com/muyou/archive/2012/08/23/2652525.html

龙生   12 Apr 2013
View Details

ccflow数据库结构说明(三)

3, ccflow 流程运行数据表. 【WF_GenerFH : 分合流信息注册表,对于是分合流的流程才有效,发起一条分合流,就多一条数据在此。】 [FID]主键,表ID ,[Title] 标题 ,[GroupKey] 分组主键 ,[FK_Flow] 流程编号, 外键:对应物理表:WF_Flow,表描述:流程编号(流程表中的流程编号) ,[ToEmpsMsg] 接受人员 ,[FK_Node] 停留节点 ,[WFState]状态 ,[RDT] 记录日期 【WF_GenerWorkFlow : 流程注册表(启动一个流程后,就产生一条数据,放在WF_GenerWorkFlow)】 [WorkID]主键,表ID      ,[FID] 流程ID      ,[FK_FlowSort] 流程类别      ,[FK_Flow] 流程编号, 外键:对应物理表:WF_Flow,表描述:流程编号(流程表中的流程编号)      ,[FlowName] 流程名称      ,[Title] 标题(如:总经理室-zhoupeng,周朋在2012-04-19 00:38发起.)      ,[WFState] 流程状态      ,[Rec] 发起人      ,[RecName] 发起人名称      ,[RDT] 记录日期 ,[FK_Node] 节点, 主外键:对应物理表:WF_Node,表描述:节点      ,[NodeName] 节点名称  ,[FK_Dept] 部门, 主外键:对应物理表:Port_Dept,表描述:部门  ,[DeptName] 部门名称 【WF_GenerWorkerlist : 节点工作人员表.( 发送一个步骤后,就把接受的工作人员放入WF_GenerWorkerlist,流程运行完成后此记录就被删除了) 】 [WorkID]主键,表ID ,[FK_Emp] 人员编号, 主外键:对应物理表:Port_Emp,表描述:用户      ,[FK_EmpText]名称 ,[FK_Node] […]

龙生   12 Apr 2013
View Details

ccflow数据库结构说明(二)

2, ccflow流程规则描述表.  用来存储流程配置的基础信息。 以 WF_ 开头.   列举如下:    【WF_FlowSort : 流程类别表.】    【No】关键字  类型编号    【Name】类型名称 【IDX】顺序 数据类型:    【WF_Flow : 流程表.】       [No]关键字  流程编号      ,[FK_FlowSort]流程类别, 外键:对应物理表:WF_FlowSort,表描述:流程类别(流程类别表中的类型编号)      ,[Name] 流程名称      ,[IsOK]是否起用      ,[FlowRunWay]运行方式,枚举类型:0 手工启动;1 指定人员按时启动;2 数据集按时启动;3 触发式启动;      ,[RunObj]运行内容      ,[IsCanStart]可以独立启动否?(独立启动的流程可以显示在发起流程列表里)      ,[Note]备注      ,[StartListUrl]导航Url      ,[AppType]流程应用类型(正常、工程类等)      ,[DocType]公文类型(对公文有效),枚举类型:0 正式公文;1 便函;      ,[XWType]行文类型(对公文有效),枚举类型:0 上行文;1 平行文;2 下行文;      ,[FlowType]流程类型      ,[FlowSheetType]表单类型      ,[RunSQL]流程结束执行后执行的SQL      ,[NumOfBill]是否有单据      ,[NumOfDtl]是否有关联表   […]

龙生   12 Apr 2013
View Details

ccflow数据库结构说明(一)

整理人:路华金 前言: ccflow 有自动修复数据表功能,所以表的字段的变化不需要用户干预由ccflow自动完成。所以如果你看到sql的错误,在执行一般就可以解决,如果解决不了,就执行一次数据库修复工具。 ccflow 有自动增加字段备注功能,所以每个字段的中文名称都已经增加了数据表的字段的备注属性上了,请注意对照,以方便您阅读ccflow。 了解ccflow 的表结构是您二次开发的基础,所以ccflow的高级用户需要熟悉每个表,掌握必要的表结构. 但是没有必要全部掌握。 ccflow 表命名规则是 前缀+"_"+表名.  大多以英文缩写或者,拼音大写组成. 比如: Port_Emp 人员表.、WF_Flow 流程表。 一个流程就有一个流程ID,叫OID。 数据表 ccflow 表分为框架表、流程规则描述表、流程数据运行表、公共表4大类: 1.框架表:    通常以Sys_ 与 Port_ 开头. 也可以称为ccflow系统表. 它是存储系统运行的基础信息. 没有必要多了解它们. 列举如下: Port_Emp: 操作员表. Port_Station: 岗位表 Port_Dept: 部门表 Port_EmpStation: 人员岗位表. Port_EmpDept: 人员部门对应表. Port_Unit: 集团公司表,对于集团类的用户有效. 【WF_Node】节点名称修改表(节点名称修改后保存的物理表) [NO]节点编号 [NAME] 节点名称 【Sys_MapData:】映射主表——新建流程或节点表、表单表、从表信息(只要要新建一张表的,都会在此出现),会在此表插入一条记录 [No]主键,值=相应物理表的表名 [Name] 描述(如节点就节点名称,流程就流程名称) [EnPK] 实体主键 [SearchKeys] 查询键 [PTable] 物理表(值=相应物理表的表名) [Dtls] 明细表(从表) [DBURL] [Tag] [FrmType] 表单类型 [FK_FrmSort] 表单类别 [AttrsInTable] 在表格中显示的列 [AppType] 应用类型 [Designer] 设计者 [DesignerUnit] 单位 [DesignerContact] 联系方式 [FK_Flow] 流程表单属性:FK_Flow [FormType] 流程表单属性:表单类型,枚举类型:0 傻瓜表单;1 自由表单;2 自定义表单;3 SDK表单;9 禁用(对多表单流程有效); [URL] 流程表单属性:Url [FrmW] 表单宽度 […]

龙生   12 Apr 2013
View Details

解决Warning: Cannot modify header information – headers alread

方法一:在PHP里Cookie的使用是有一些限制的。1、使用setcookie必须在<html>标签之前2、使用setcookie之前,不可以使用echo输入内容3、直到网页被加载完后,cookie才会出现4、setcookie必须放到任何资料输出浏览器前,才送出…..由于上面的限制,在使用setcookie()函数时,学会遇到 "Undefined index"、"Cannot modify header information – headers already sent by"…等问题,解决办法是在输出内容之前,产生cookie,可以在程序的最上方加入函数 ob_start();ob_start :打开输出缓冲区函数格式:void ob_start(void)说明:当缓冲区激活时,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区。为了输出缓冲区的内容,可以使用ob_end_flush()或flush()输出缓冲区的内容。方法二:解 决Warning: Cannot modify header information – headers already sent by …… 前几天装了个php的大头贴系统测试,发现报错Warning: Cannot modify header information – headers already sent by ……今天又装openads,还是出现这个问题。怒了。上网找了半天,有人说要在文件开头写上ob_start();失败。后来打开 php.ini 然后把 output_buffering 设为 on 。重起appache,OK。看来这才是解决办法。特别注意:(我就是看了这个才解决问题的)如果使用utf-8编码,一定要去掉UTF-8中的BOM,这都是因为utf-8编码文件含有的bom原因,而php4,5都是不支持bom的。去掉bom,可以用Notepad++打开转换一下。(我就是看了这个才解决问题的)用PHP的ob_start(); 控制您的浏览器cache 。 http://www.wangzhanxiugai.com/article-46.html

龙生   11 Apr 2013
View Details

IIS配置PHP5.3配置完成后—FastCGI Error14001 (0x800736b1)___解决方法

IIS配置PHP5.3配置完成后—FastCGI Error14001 (0x800736b1)___解决方法2010-12-23 0:41 服务器环境:   PHP版本:php-5.3.0-Win32-VC9-x86.zip   WIN2003 IIS6 按照前一篇的教程[IIS上安装PHP5.3的方法(教程) ]安装PHP 5.3 安装好后还是提示如下错误: FastCGI ErrorThe FastCGI Handler was unable to process the request. ——————————————————————————-- Error Details: Error Number: 14001 (0x800736b1). Error Description: 由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。 HTTP Error 500 – Server Error.Internet Information Services (IIS) 发生此错误的关键原因在于没有安装VC9运行库 即VISUAL C++ 2008 Microsoft Visual C++ 2008 Redistributable Package (x86)下载地址: http://www.microsoft.com/downloads/details.aspx?FamilyID=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&displaylang=zh-cn 安装后即能正常使用了. 相关日志JTBC(php版):FLASH幻灯片完美调用方法如何阻止putty变成inactiveJTBC(php版):折腾了我三天的问题终于解决了,一个字“爽”!JTBC(php版):错误Deprecated: Function split() is deprecated in解决方法PHP:错误 Deprecated: Function split() is deprecated in … 解决办法 转自:http://hi.baidu.com/taotaoi/item/064515d8e4cb4de854347f93

龙生   11 Apr 2013
View Details

Smarty

Smarty是一个使用PHP写出来的模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目的就是要使PHP程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。 定义 如何使我的PHP脚本从设计中独立出来?这无疑地是在PHP邮件列表上所提问的最多的问题之一。虽然PHP被标榜为“HTML嵌入式语言”,在写过许多PHP和HTML混合式的工程之后,我产生了一个分离表单和内容的想法。而且,在许多公司里规划设计者的角色和程序设计者是分开的。于是,这样的一个模板解决方案产生了…… 例如在一个公司,一个应用程序的开发流程如下:在提交计划文档之后,界面设计者[美工]制作了网站的外观模型,然后把它交给后台程序员。程序员使用PHP实现商业逻辑,同时使用外观模型做成基本架构。然后工程被返回到HTML页面设计者继续完善。就这样工程可能在后台程序员和页面设计者之间来来回回好几次。由于后台程序员不喜欢干预任何有关HTML标签,同时也不需要美工们和PHP代码混在一起;美工设计者只需要配置文件,动态区块和其他的界面部分,不必要去接触那些错综复杂的PHP代码。因此,这时候有一个很好的模板支持就显得很重要了。 纵观现今存在的许多PHP模板解决方案(比如PHPLIB),大多数都只是提供了用模板取代变量和将动态区块的功能有限的格式化的基本方法。但是我们的需求比这个要高的多。我们完全不想要PHP程序员去设计HTML页面,可是这又是不可避免的。例如:如果美工想要在动态区块之间交替不同的背景颜色,他就可能得和程序员预先说好。同样,美工们也应该有自己对于页面设计的配置文件,这同样可以通过变量把他们拉到模板里边去 优点 1. 速度:采用Smarty编写的程序可以获得最大速度的提高,这一点是相对于其它的模板引擎技术而言的。 2. 编译型:采用Smarty编写的程序在运行时要编译成一个非模板技术的PHP文件,这个文件采用了PHP与HTML混合的方式,在下一次访问模板时将WEB请求直接转换到这个文件中,而不再进行模板重新编译(在源程序没有改动的情况下) 3. 缓存技术:Smarty选用的一种缓存技术,它可以将用户最终看到的HTML文件缓存成一个静态的HTML页,当设定Smarty的cache属性为true时,在Smarty设定的cachetime期内将用户的WEB请求直接转换到这个静态的HTML文件中来,这相当于调用一个静态的HTML文件。 4. 插件技术:Smarty可以自定义插件。插件实际就是一些自定义的函数。 5. 模板中可以使用if/elseif/else/endif。在模板文件使用判断语句可以非常方便的对模板进行格式重排。 不适合使用Smarty的地方 需要实时更新的内容。例如像股票显示,它需要经常对数据进行更新,这类型的程序使用smarty会使模板处理速度变慢。 小项目。小项目因为项目简单而美工与程序员兼于一人的项目,使用Smarty会在一定程度上丧失PHP开发迅速的优点。 (PS:不过为了整个项目的规范,请大家尝试去使用模板引擎。其实习惯了,开发速度会更加快,以上是没有用习惯模板引擎的开发者遇到的问题) 诞生过程 早在1999年后期,我们就已经开始为模板引擎写说明文档。在完成这个文档之后,我们开始用C写一个模板引擎,并有希望被包含到PHP里去。在 撞上了许多的技术难题的同时,“什么是模板应该做的,什么不该做”这个问题,也被热烈的讨论着。从这些经验,我们决定应该用PHP将模板引擎写成一个类,让任何觉得合适的人使用它。所以我们写了一个引擎,从此就有了Smarty。(注:这个类以前从来没有公开发表过)。这个类几乎达到了我们所有的要求:常规变量替换,支持包括其他模板,使用配置文件集成设置,嵌入PHP代码,限制'if'语句的作用,还有更多的可以多层嵌套的健壮的动态区块。它用常规表达式做到这一切,于是代码变得相当令人费解。在每次调用的时候,都要去解析那些语法和常规表达式,于是在大型应用的时候,它显然慢了下来。在程序员的眼光看来,最大的问题还是使用PHP脚本建立和处理模板和动态区块的所有必要工作。我们应该如何使他变得更简单? 我们可以想象Smarty应该有怎样的最后表现。我们知道PHP代码如果没有了模板解析的开销将有多快,我们也知道从一般的美工看来PHP语言是多么的“恐怖”,然而这一切可以被一种更简单的模板语法掩饰掉。我们应该怎样把这两种方法的长处结合起来? 于是,Smarty诞生了……

龙生   11 Apr 2013
View Details
1 151 152 153 175