分类目录归档:PHPer

在Yii Framework中集成Twig

2011 年 9 月 24 日

Twig是一款快速、安全、灵活的PHP模板引擎,它内置了许多filter和tags,并且支持模板继承,能让你用最简洁的代码来描述你的模板。他的语法和Python下的模板引擎Jinjia以及Django的模板语法都非常像。 比如我们在PHP中需要输出变量并且将其进行转义时,语法比较累赘: 1 2 < ?php echo $var ?> < ?php echo htmlspecialchars(\$var, ENT_QUOTES, ‘UTF-8′) ?> 但是在Twig中可以这样写: 1 2 3 {{ var }} {{ var|escape }} {{ var|e }} {# shortcut to escape a variable #} 遍历数组: 1 2 3 … 继续阅读

发表在 PHPer 标签为 ,
  |  阅读(109次)

豆瓣风格的WordPress主题

2011 年 5 月 16 日

丢在电脑已经很久的一份设计稿,今天把它放出来了,就是你现在看到的这个主题。 这个主题是基于Wordpress默认主题twentyten开发的,第一次做很多不足还请见谅。目前版本是v0.1,如果您有什么建议,请不要吝惜您的键盘寿命,在文章内给我留言。 功能: 完整的小工具支持 支持自定义菜单 支持Wordpress插件 更新日志: 2011-5-17: 发布wordpress-douban-style v0.2,修复了部分样式问题,移动搜索条到页面顶部,添加订阅按钮和follow按钮。 2011-11-4: 增加图片lazyload,文章部分字体改为豆瓣的深灰色,使用主题自带的jQuery而不是Wordpress中的jQuery。 下载:douban-wordpress-theme-v0.3.tar.gz

发表在 PHPer 标签为 , ,
  |  阅读(498次)

ShoutBox

2011 年 4 月 20 日

知道这个东西叫Shoutbox也花了很多时间,任何人都可以在这个盒子里很方便的发送消息,消息会被即时的显示在页面上,被所有人看到。这种shoutbox在很多国外论坛上很常见,国内好像不怎么有。去年跟小豪做很多无聊项目的时候,有客户提出要求要实现这么个功能,这大概是唯一感觉还好玩点的东西了吧!可惜最后还是没用用上,哈哈。无聊放上来,怀念一下那段时光。 截图: 原理其实比较简单,就是利用Ajax定时刷新,删掉旧的消息把新的消息弹出来,但是看起来还是蛮酷的东西。 代码就不放了,数据库用的是sqlite,搭好PHP环境直接就可以运行。 下载地址:Shoutbox

发表在 PHPer 标签为 , ,
  |  阅读(94次)

这几天做的一个项目中需要在所见即所得编辑器中实现图片上传的功能,我因为比较喜欢CKEditor的界面而选择了它。虽然有跟CKEditor配合良好的CKFinder,不过这个东东的功能太复杂,简单看了下CKEdtior的文档,发现这个功能还是可以自己实现而不用借助CKFinder的。 下面代码虽然基于Yii Framework的,但是用其他框架或者语言思路却是完全一样的,有需要的童鞋可以参考一下。 首先要让CkEditor出现图片上传的功能,需要配置编辑器的filebrowserImageUploadUrl属性: 1 2 3 4 5 CKEDITOR.replace( ‘editor1′, { filebrowserUploadUrl : ‘/uploader/upload.php’, filebrowserImageUploadUrl : ‘/uploader/upload.php?type=Images’ }); 然后在对应的URL上实现图片上传的功能,并向CKEditor返回特定格式的HTML代码,CKEditor就能正常预览并插入图片了。 下面只截取控制器的部分代码,Controller部分我是这样实现的: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 … 继续阅读

发表在 PHPer 标签为 , , ,
  |  阅读(606次)

用了一个主题,不过因为是免费的,默认不支持Wordpress 3.0里面新加入的自定义菜单(custom menu),于是决定自己改造一番 如果你的主题不支持”自定义菜单“的话,进入外观->菜单设置会有不支持的提示,要让主题支持这个新功能,首先在functions.php里面加入以下代码: 1 2 3 4 5 < ?php if ( function_exists( ‘register_nav_menu’ ) ) { register_nav_menu( ‘pluginbuddy_mobile’, ‘PluginBuddy Mobile Navigation Menu’ ); } ?> 第一个参数相当于一个slug,即唯一的一个ID,第二个参数是描述,然后在进入”菜单“设置就不会看到不支持的提示了,但要真正让这个功能可用,还要继续修改导航菜单的调用方式。 比如我的博客现在主题调用菜单的代码在header.php

  |  阅读(332次)

难得把压在草稿箱的文章发出来,写博客真的太耗费时间了,压力好大。 实现国际化的方式比较多,很多php framework都内置i18n支持,但大部分是基于PHP的数组实现的,这种方法并不推荐。目前最为流行也最通用的方法是gettext。 Gettext 用于系统的国际化(I18N)和本地化(L10N),可以在编译程序的时候使用本国语言支持(Native Language Support(NLS)),其可以使程序的输出使用用户设置的语言而不是英文. 关于gettext的更多资料请参见:http://oss.org.cn/man/linux/lfs/htmlbook/appendixa/gettext.html 下面说说如何利用gettext在你的PHP程序中实现国际化。

发表在 PHPer 标签为 , , , ,
  |  阅读(705次)

PHP的文件缓存(File Cache)

2010 年 11 月 27 日

紧接着上一次的话题,通过Yahoo Finance API获取股票数据,由于每次获取数据时间都比较久,对于放置的首页的东西,这么长时间的等待肯定是不可接受的,由于数据更新并不频繁,所以想到了用缓存的方法提高速度。常用的缓存方法有牛X基于内存的memcached,还有基于数据库的(用mysql或者sqlite),最常用的是基于文件的缓存。 先来看看调用的方法,再考虑如何实现: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 include(’CFileCache.php’); $stock = array( ‘上证指数’=>’000001.ss’, ‘深圳成指’=>’399001.sz’, ‘香港恒生’=>’0011.hk’, ‘日经指数’=>’^N225′, ‘英国FTSE’=>’^FTSE’, ‘法国CAC’=>’^FCHI’, ‘德国DAX’=>’^GDAXI’, ‘纳斯达克’=>’^IXIC’, ‘道琼指数’=>’INDU’, ); $cache … 继续阅读

发表在 PHPer 标签为 , , ,
  |  阅读(310次)
Page 1 of 41234