Category Archives: Programming

拒绝垃圾邮件,隐藏email地址

如今的垃圾邮件是越来越猖狂了,稍不小心就会遭致无穷尽的骚扰。尽管有如同Gmail这样的强大的反垃圾邮件的服务商,仍有不少漏网之鱼(每天躺在我收件箱里的垃圾邮件会有几十封)。 我们需要避免直接在网页中留下email地址,例如 test@test.com。下面有一些简单且行之有效的方法隐藏email地址。 方法一:使用图片显示email地址 例如: Google里搜索一下“email图片”类似的关键词,就可以找到有很多网站生成这样的图片 这里有一个:http://www.makepic.com/email.php 方法二:隐藏 @ 符号 使用 @ 代替 @,(是@符号的html实体代码)显示出来的效果会是 test@test.com 使用 at 或者其他任意字符 代替 @,例如 test at test.com、test(at)test.com 方法三:使用脚本语言(php或JavaScript)隐藏email地址 代码一:PHP function convert_email_adr($email) { $pieces = str_split(trim($email)); $new_mail = ”; foreach ($pieces as $val) { $new_mail … Continue reading

Posted in Programming | Tagged , , | Leave a comment

让Firefox显示无效图片

FireFox默认隐藏无效图片(broken image),而不是像IE中那般,显示一个红X。 开发人员在coding的时候,难免会遗漏掉这些细节。所以,最好能够让Firefox别那么智能,还是正常显示出无效图片吧。 解决方案: 在C:\Documents and Settings\用户名\Application Data\Mozilla\Firefox\Profiles\不固定字符串.default\chrome,新建一个userContent.css。内容如下: /* *显示缺失图像占位符 */ @-moz-document url-prefix(http), url-prefix(file) { img:-moz-broken { -moz-force-broken-image-icon: 1 !important; width: 24px; height: 24px; } } 重启浏览器即可生效。 补充:使用 Windows 7 的用户请前往 C:\Users\用户名\AppData\Roaming\Mozilla\Firefox\Profiles\不固定字符串.default\chrome

Posted in Programming | Tagged , | Leave a comment

如何传递变量给JavaScript

目前WEB2.0的apps开发中,一个常见的任务就是通过服务端脚本(或者链接)传递变量给JavaScript,从而影响客户端脚本的执行。 不足为奇,有以下几个方法可以实现这个需求。我们来看看它们的优缺点: 在模版中嵌入脚本 通过URLs传递变量 使用配置脚本 1、在模版中嵌入脚本 这是传递变量最简单的方法,嵌入你的js代码在模版或视图文件,或者任何你想从服务端脚本输出的内容。 下面是一个php示例 1 2 3 4 5 6 7 8 9 10 11 12 <code><html> <head> <script type="text/javascript"> function onload() { alert(‘Value from PHP: <?php echo $valueFromPhp; ?>’); } </script> </head> <body onload="onload()"> You’ll … Continue reading

Posted in Programming | Tagged | Leave a comment

如何提高邮件的打开率?从邮件主题入手!

最近在帮客户做电子邮件营销方面的事情。从效果上来看,不理想!只有5%左右的打开率。 如何提高邮件的打开率呢?最先想到的就是邮件主题!这是给用户的第一印象。自己平时收信时,很多邮件一看标题就直接删掉或者丢进垃圾箱!在圈子里也做了一些小调研,大致相仿。 碰巧读到一篇关于邮件主题的调研文章,举了一些实例。很有参考价值。如下: 最佳标题(打开率60%-87%) [COMPANYNAME] Sales & Marketing Newsletter Eye on the [COMPANYNAME] Update (Oct 31 – Nov 4) [COMPANYNAME] Staff Shirts & Photos [COMPANYNAME] May 2005 News Bulletin! [COMPANYNAME] Newsletter – February 2006 [COMPANYNAME] Newsletter – January 2006 [ … Continue reading

Posted in Programming | Tagged , | Leave a comment

10大PHP框架

这是排名前十位的基于MVC设计模式的PHP框架(依据什么排名我不得而知)。 Yii CodeIgniter CakePHP PHPDevShell Akelos Symfony Prado Zend ZooP QPHP via 上述框架我仅用过CakePHP和Zend Framwork。用CakePHP是因为Ruby on Rails(爱屋及乌?),放弃它是因为无法忍受它的龟速(或许现在性能有所改进?)。现在用Zend Framework,性能方面它并没过人之处,很大程度是考虑官方因素(囧)。 我在团队中引入框架,主要目的是增进协作,完善开发规范,做过的东西产品化,避免每个项目每个人各一套代码。 这里分享一篇帖子《PHP框架的繁荣是正确的发展方向吗?》,帖子挺长,讨论的挺详细。值得一看。 这个图有意思,Ruby on Rails火的时候php的框架也到了一个火热期。

Posted in Programming | Tagged , | Leave a comment

图形文件格式 PPM 介绍

在做的一个项目中需要用到这种文件格式 .ppm 。网上相关的介绍并不多。摘录一篇备忘。 A PPM file consists of two parts, a header and the image data. The header consists of at least three parts normally delinineated by carriage returns and/or linefeeds but the PPM specification only requires white space. The … Continue reading

Posted in Programming | Tagged , | Leave a comment

每个web程序员都应该知道的5个正则表达式

1、匹配用户名 规则: 允许字符和数字(a-z,A-Z,0-9) 允许下划线 正则表达式: /^[a-zA-Z0-9_]{3,16}$/ 代码示例: function validate_username( $username ) { if(preg_match(‘/^[a-zA-Z0-9_]{3,16}$/’, $_GET['username'])) { return true; } return false; } 2、匹配XHTML或XML标签 正则表达式: {]*>(.*?)} 代码示例: function get_tag( $tag, $xml ) { $tag = preg_quote($tag); preg_match_all(‘{]*>(.*?).’}’, $xml, $matches, PREG_PATTERN_ORDER); return $matches[1]; … Continue reading

Posted in Programming | Tagged | Leave a comment

解决方案:CakePHP中文乱码问题

发现不少人在初学 CakePHP 时遇到中文乱码的问题。如图: 首先需要确认的是,你mysql库里面的编码设置都是utf-8 解决方案很简单,就是在数据库配置文件(/app/config/database.php)里加一句

Posted in Programming | Tagged , , | 3 Comments

40个迹象表明你还是PHP菜鸟

1. 不会利用如phpDoc这样的工具来恰当地注释你的代码 2. 对优秀的集成开发环境如Zend Studio或Eclipse PDT视而不见 3. 从未用过任何形式的版本控制系统,如Subclipse(AmirFish注:我用SVN) 4. 不采用某种编码与命名标准,以及通用约定,不能在项目开发周期里贯彻落实(AmirFish注:这部分一直在做,但是觉得还不够好!) 5. 不使用统一开发方式(AmirFish注:不太明白) 6. 不转换(或)也不验证某些输入或SQL查询串(译注:参考PHP相关函数) 7. 不在编码之前彻底规划你的程序(AmirFish注:或许还不够彻底,没有深入每一个细节) 8. 不使用测试驱动开发 9. 不在错误开启状态下进行编码和测试(译注:参考PHP函数error_reporting) 10. 对调试器的好处视而不见(AmirFish注:我用Xdebug)

Posted in Programming | Tagged | 3 Comments

Apache DefaultCharSet导致网页乱码

最近做的一个项目,把demo传到客户服务器上,有些模块变成了乱码,设置所有的JS运行都出了问题。而在我本机环境、手上另外一台服务器上测试均无问题。 那么,先明确导致乱码的核心问题:编码不一致!。 呃,如果是个人兴趣问题,打了脑残体之类的文字,则不在本文讨论范围。 1、网页的meta信息。例如: <meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ /> 2、文件保存时的编码选择。例如: 3、程序通过header()函数指定编码。例如php: header(“Content-Type:text/html; charset=utf-8″); 4、客户端浏览器的编码选择 5、服务器端的WEB服务器编码设置,如Apache、IIS。 上述4个地方,有任何一个编码不一致,都可能导致乱码。例如网页的meta你设置的是utf-8,而保存时就选择gbk编码。再或者你网页是utf-8编码,你在浏览器里选择gbk编码查看,那么…可以尝试一下 今天我遇到的问题呢?首先可以确保的是meta和文件保存时的编码是一致的,均为utf-8。但当我用浏览器访问出问题的网页时,浏览器自动选择了gbk编码,乱码!当我把浏览器编码切换到utf-8编码时,网页正常。 抓取网页的header信息。发现utf-8的网页被服务器发送回来竟然变成了gbk 如此看来一定是apache的设置问题咯。 打开apache的配置文件,httpd.conf。 查找:defaultcharst 果然有这么一行  AddDefaultCharset GB2312。 注释掉,保存,重启apache。 一切恢复正常。 小结: 1、如果 apache 设置了 defaultcharset ,并且程序里没有使用header()指定编码。那么最终输出以apache的AddDefaultCharse为主。 2、除非特别必要,否者不要设置apache的AddDefaultCharse。

Posted in Programming | Tagged , , | Leave a comment