Archive for  php

PHPCMS V9使用 syntax-highlighter 进行代码高亮

发表于 2012-02-3 12:20 : 评论 ( 没有评论 )

新增一个函数库文件,放到phpcms自动加载目录下 phpcms\libs\functions\autoload\highlighter.func.php 模板中调用需要格式化的数据: 并将相关js文件上传到phpcms的 static目录下 statics

ThinkPHP 2.x升级到3.0

发表于 2012-01-13 21:45 : 评论 ( 没有评论 )

ThinkPHP将于2012年1月15日发布3.0版本,由于本次的版本新增了不少特性,在配置、模型、控制器方面新增不少功能,但也同时做了一些调整,修改或者删除了一些用法。 鉴于上述变化,本次发布的版本将会是一个跨度比较大的里程碑版本,官方不建议用户从2.0直接升级3.0。考虑到旧用户的升级需求,官方会同时发布2.X分支的后续版本2.2版,以便用户进行升级。 以下文章便是建立在有部分用户分有将2.X 的项目升级到3.0的需求,以下记录了本人的升级过程,仅供参考。 在升级之前,请大家阅读后文的附一和附二文章。 以下记录本人升级的重要步骤 1,通过SVN下载Tp最新版,并将ThinkPHP目录放到旧版本TP的同级目录下,TP3.0正式发布以后,大家可以到官方网站下载。如果是从SVN下载的同学,请将Trunk下的Extend目录放到THINKPHP框架目录下。 2,移走旧项目的Runtime、Conf等Tp会自动生成的目录,以便项目重新编译,我将Conf.php做了备份,各位要注意,后面会用到 3,重建入口文件,TP3.0中的入口文件做了比较大的修改,修改入口文件 确保你的THINK_PATH APP_PATH 以/结束,去掉入口文件中的App::run()代码,建议在入口文件中添加 define('APP_DEBUG',TRUE); 开启调试模式,2.0版本中在配置文件中定义Debug的方法已经被废弃,修改后入口文件如下: 4,访问入口文件,重新生成Conf、Runtime目录 5,打开新的Conf.php,将旧版本的配置文件,按下面附一的的变化,进行修改,完成配置文件的修改,各位要注意几项已经修改的配置方法,要一一修改正确,注意DEFAULT_THEME参数 6,如果你启用了分组模式,则需要对模板目录结构进行调整。2.0使用THEME/Gorup/Action的目录结构,3.0修改成了Gorup/THEME/Action结构。需要将以前的分组模板目录整体上移一个目录,并将下面的模板文件夹,放到指定的DEFAULT_THEME目录。 如2.0:default/Admin/Index的目录要修改成Admin/default/Index 7,对照下文,对模板、模型、控制器进行修改,比较常见的修改内容有: FindAll别名废弃:M()->findAll()修改成M()->select() setField getField setInc setDec废弃,需要重写查询条件 路由和快速调用方法的改进,如A("Amin.Login")修改成A("Amin/Login"),路由的规则请见下文 修改模板中已经废弃的标签 8,由于TP3.0在核心精简、性能优化方面的改进,以前一些自动加载的扩展类,现在已经无法自动加载了,同时,还有些常用类,被移到了扩展类中,如SESSION和Cookie类。如果项目中提供函数和Class找不到,则需要在错误出现的地方,Import一下。 到目前止,升级差不多就完了。 正式升级的时候,还需要进行一段时间的测试,各位可以将Debug打开,看一下程序运行日志,同时关注一下PHP的错误信息,以便定位错误,进行修改。 附一: [ 升级须知 ] 请注意:3.0版本要求PHP的版本5.2.0以上 如果低于该版本 不建议使用或升级 首先下载3.0最新核心版本 删除项目的Runtime目录 备份现有的ThinkPHP系统目录后删除 ThinkPHP目录 把3.0的ThinkPHP目录放入原来的项目对应位置 然后按照下面的升级步骤进行检查: 1、入口文件 修改入口文件 确保你的THINK_PATH APP_PATH 以/结束 去掉入口文件中的App::run()代码 建议在入口文件中添加 define('APP_DEBUG',TRUE); 开启调试模式 如果定义则删除入口文件中的APP_CACHE_NAME、NO_CACHE_RUNTIME、RUNTIME_ALLINONE、STRIP_RUNTIME_SPACE常量定义代码 开启调试模式后就已经具有了NO_CACHE_RUNTIME的效果。 注: 新版TP已经取消了对配置文件修改时间的判断。 [...]

发布接口不能正常使用的常见问题,Zend Guard加密的文件出现500错误的解决办法

发表于 2011-12-29 11:08 : 评论 ( 没有评论 )

尘缘的发布接口(http://my.4wei.cn/)采用服务器自动生成授权并打包的,默认使用Linux + Zend Guard 5.5 进行加密,7z进行打包。 包括免费接口和收费接口,如果你的接口上传到服务器上,不能正常访问,请对照以下错误现象和解决办法。 1,Zend Optimizer not installed 最常见的问题,“Zend Optimizer”没有安装,请根据以下两篇文章安装Zend Optimizer或者Zend Loader http://www.4wei.cn/archives/1001038 http://www.4wei.cn/archives/1001397 2,接口报“500 Internal Server Error” 如果你的接口访问时,是空白页面,或者没有内容,或者没有报异常错误,那应该就是出现了“500 Internal Server Error”,经常出现在Linux主机上。 错误原因有两个: 你的服务器上的php版本是5.3,而你的接口使用了5.2的版本,请在购买时正确选择你的php版本,已经购买生成授权的用户,请联系尘缘更换php版本信息并重新生成授权. 同上,用户版用户请正确选择对应版本的接口压缩包,并上传 接口没有使用二进制上传,或者ftp软件上传时出错,请换一个ftp上传软件试试 3,接口报“This file has expired” 您使用的接口版本太老,不能再继续使用了,需要更新一下接口。 下载免费接口、购买收费接口、更新收费接口的用户请直接前往http://my.4wei.cn 尘缘版接口 提示This file has expired的解决办法:http://www.4wei.cn/archives/1001548 4,接口提示“Fatal error: Incompatible file format: The encoded file has format major ID 65540, whereas the [...]

phpcms v9 会员投稿功能,编辑文章以后,siteid字段丢失

发表于 2011-12-14 18:47 : 评论 ( 没有评论 )

现象: 会员投稿的内容,进行二次编辑以后,从已投稿列表里消失,后来发现是siteid参数丢失 bug定位 member/content.php 211行 content_model.class.php 再看 可以看出,siteid在模块间传递时出现了丢失。 解决办法是在编辑文章之间对siteid进行更新

PHPCMS V9 全站Sitemap生成[服务器端版]

发表于 2011-12-6 18:55 : 评论 ( 1 条评论 )

需求: 通过服务器的定时任务自动更新网站全站的所有文章,并生成sitemap 以下代码为sitemap crontab for phpcms v9,以下代码保存到phpcms 根目录下,配置cronTab定时生成即可

phpredis 中文说明

发表于 2011-11-7 20:00 : 评论 ( 没有评论 )

redis及phpredis相关安装教程:redis安装手册,中文配置手册,php-redis模块安装方法,Web管理phpRedisAdmin redis-cli 命令中文版:redis-cli 命令中文版 Redis::__construct构造函数 $redis = new Redis(); connect, open 链接redis服务 参数 host: string,服务地址 port: int,端口号 timeout: float,链接时长 (可选, 默认为 0 ,不限链接时间) 注: 在redis.conf中也有时间,默认为300 pconnect, popen 长链接,即不会主动关闭的链接,需要手工关闭 参考上面 setOption 设置redis模式 getOption 查看redis设置的模式 ping 查看连接状态 get 得到某个key的值(string值) 如果该key不存在,return false set 写入key 和 value(string值) 如果写入成功,return ture setex 带生存时间的写入值 $redis->setex('key', 3600, 'value'); // sets key → value, [...]

redis-cli 命令中文版

发表于 2011-11-7 17:46 : 评论 ( 没有评论 )

Redis安装方法、配置手册中文版:redis安装手册,中文配置手册,php-redis模块安装方法,Web管理phpRedisAdmin Redis提供了丰富的命令(command)对数据库和各种数据类型进行操作,这些command可以在Linux终端使用。在编程时,比如使用Redis 的Java语言包,这些命令都有对应的方法。下面将Redis提供的命令做一总结。 官网命令列表:http://redis.io/commands (英文) 1、连接操作相关的命令 quit:关闭连接(connection) auth:简单密码认证 2、对value操作的命令 exists(key):确认一个key是否存在 del(key):删除一个key type(key):返回值的类型 keys(pattern):返回满足给定pattern的所有key randomkey:随机返回key空间的一个key rename(oldname, newname):将key由oldname重命名为newname,若newname存在则删除newname表示的key dbsize:返回当前数据库中key的数目 expire:设定一个key的活动时间(s) ttl:获得一个key的活动时间 select(index):按索引查询 move(key, dbindex):将当前数据库中的key转移到有dbindex索引的数据库 flushdb:删除当前选择数据库中的所有key flushall:删除所有数据库中的所有key 3、对String操作的命令 set(key, value):给数据库中名称为key的string赋予值value get(key):返回数据库中名称为key的string的value getset(key, value):给名称为key的string赋予上一次的value mget(key1, key2,…, key N):返回库中多个string(它们的名称为key1,key2…)的value setnx(key, value):如果不存在名称为key的string,则向库中添加string,名称为key,值为value setex(key, time, value):向库中添加string(名称为key,值为value)同时,设定过期时间time mset(key1, value1, key2, value2,…key N, value N):同时给多个string赋值,名称为key i的string赋值value i msetnx(key1, value1, key2, value2,…key N, value N):如果所有名称为key [...]

ThinkPHP+Redis 缓存类

发表于 2011-11-7 17:36 : 评论 ( 没有评论 )

为了让ThinkPHP支持Redis,写了这个Redis的缓存类,里面只有简单的Get和Set方法,方便在S方法直接使用,复杂的使用方法,可以直接使用phpRedis。 本类要求支持phpRedis安装方法:http://www.4wei.cn/archives/1001521 附件需要上传到ThinkPATH\Lib\Think\Util\Cache\CacheRedis.class.php 配置方法,在ThinkPHP项目配置文件中,添加以下参数: 上述参数分别表示缓存类型,主机,端口和超时时间。 附件下载:CacheRedis.class 源码如下: