分类目录归档:WEB

最优秀的PHP开发环境-Zend Studio

什么是Zend Studio?
Zend Studio 是一个屡获大奖的 PHP 集成开发环境,也可以说是目前开发人员在使用PHP开发周期中唯一的、强大的、集成开发环境 (IDE),它具备功能强大的专业编辑工具和调试工具,支持PHP语法加亮显示,支持语法自动填充功能,支持书签功能,支持语法自动缩排和代码复制功能,内置一个强大的PHP代码调试工具,支持本地和远程两种调试模式,支持多种高级调试功能,包括了PHP所有必须的开发部件。通过一整套编辑、调试、分析、优化和数据库工具,Zend Studio 加速开发周期,并简化复杂的应用方案。

Zend Studio 特点
快速代码开发与配置本地和远程调试器
数据库连通性 & SQL工具 团队合作环境
完全 PHP 4/PHP 5 切换 PHPDocs/PHP文档处理程序支持
SFTP, FTP以至SSH的安全连接 100个以上代码摘录
50个以上样品数据库应用程序 与Zend Platform™组合

Zend Studio产品特征
Zend Studio 设计时考虑了商务应用开发的需要,是开发者利用PHP创造强有力数据库应用软件的完美开发环境。Zend Studio 具有专业和企业开发者开发、配置、调试和管理关键商务PHP应用的易使用性、可伸缩性、可靠性和扩展性。

Zend Studio 主要组件
1 专业的集成开发环境 内置 编辑器, 调试器, 以及 帮助文档
2 Windows, Linux, Mac 等多个操作系统版本
3 多语言支持
4 专业的编辑器
5 关键字、语法加亮显示 (PHP, HTML, XHTML, and Javascript)
6 XML & CSS 的关键字、语法加亮显示
7 代码模板
8 支持 PHP 4 and PHP 5
9 代码自动完成功能
10 PHP Code (+PHPDoc) 分析功能
11 内部调试器
12 代码摘录
13 PHP 代码分析
14 远程调试器
15 Remote Profiler
16 数据库连接以及集成查询 ,适用于 : IBM DB2/Cloudscape, MySQL, Oracle Microsoft SQL Server, SQLite, and PostgreSQL
17 NEW! Set of SQL Tools: SQL Query Editor, SQL Explorer, and more.
18 NEW! PHPDocumentor
19 CVS 集成,方便团队开发
20 FTP 高度集成

目前最新版本是5.5.1,下载地址在这里找,最新版本内置中文语言包。
5.5.0默认英文,修改中文的方法是:
将{X}:Documents and Settings{User}ZDEconfig_5.{x}desktop_options.xml文件中
<customized_property ID=”desktop.language”>
  <locale language=”en” country=”” variant=””/>
</customized_property>
en改为zh,重启zend后就OK。

提供一个注册码
Name:mimiz.cn
Serial:9EA3B70712182039
可适用于5.5.X版本

Blog重构完成

第一次用重构这个词是在04年,当时受阿捷的影响,
把一个HTML4.0的站重构成了XHTML1.0,
造成的直接后果就是习惯了手写页面,
以至于拿到最新版的Dreamweaver,已经不知如何使用了……

现在的这次重构,也许称之为开发更为确切,
不同的是,重构这个词让我有一种惬意的感觉,
而开发却总能使我大脑分泌未知激素,
或者产生儿茶酚胺,以至于晚上睡不着觉。

言规正题,程序依然使用WordPress,
模板是重新开发的,配色仿照的265.com,
而且一不小心通过了校验。
开发模板的过程中顺便修改了大量代码,
以更适用我的习惯和这个比较垃圾的服务器。
号称Code is Poetry的WordPress,
在我这个最美是中文的家伙看来,
Code更像是Prolixity,
因为代码里存在大量的判断和查询,
增加了兼容性的同时大大降低了效率,
对于访问量较大的站点简直就是噩梦。

不过话说回来,WordPress的Code写得确实很优秀,
能获得最佳开源社会化网络CMS果然不是一般的强,
正在努力学习中……

好一个BOM,折磨了我3天!

至于什么是BOM,请看这篇文章

1月6日
被要求开发UTF-8的PHP站。
上午: 写了几个页面且测试OK。
下午: 出去Happy没动电脑。
晚上: 惊奇的发现DIV在Firefox下不能居中,
于是很郁闷的睡了一觉…… 😦

1月7日
上午: 以为CSS问题,尝试了各种hack,依然没有解决问题。
下午: 满世界求助,依然无解。
晚上: 自以为见了鬼,
于是很痛苦的睡了一觉…… 😥

1月8日
上午: 决定把问题简单化,
删除了多余的CSS、语句、标签,把.php保存为.html,
最后只剩下一个DIV标签和相应的CSS,竟然还不能居中!
又发现把DIV标签另存为另外的HTML文件,竟然可以居中!
此时看到两个内容一样,显示却不一样的html,好像见到了鬼 👿
快疯了……
下午: 冷静思考,排除CSS问题,继续研究HTML。
晚上: 使用杀手锏,满宇宙求助,经小福猪提醒,原来是BOM惹得祸。
彻底疯了……
我怎么就没想到BOM呢,大概最近劳累过度。不过总算解决了问题。
晚上做梦,梦见自己疯过来疯过去的…… 😆

About BOM

吃一堑,长一智。应该对BOM引起重视。

本文探讨的不是BOM本身,而是怎样解决在UTF-8编码下PHP的BOM问题。

这里指的BOM是Byte Order Mark,不是Bill Of Material,也不是Brower Object Model。
那么BOM具体是什么?官方的解释是这样的:
A byte order mark (BOM) consists of the character code U+FEFF at the beginning of a data stream, where it can be used as a signature defining the byte order and encoding form, primarily of unmarked plaintext files. Under some higher level protocols, use of a BOM may be mandatory (or prohibited) in the Unicode data stream defined in that protocol.

另外,fmdd也给出了解释:
在UCS编码中有一个叫做”ZERO WIDTH NO-BREAK SPACE”的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输字符”ZERO WIDTH NO-BREAK SPACE”。这样如果接收者收到FEFF,就表明这个字节流是Big-Endian的;如果收到FFFE,就表明这个字节流是Little-Endian的。因此字符”ZERO WIDTH NO-BREAK SPACE”又被称作BOM。

简单的说,用Windoes自带的记事本把一个文本文件另存为UTF-8编码,然后用UltraEdit以十六进制打开,就可以看到文件开头的”EF BB BF”,这个就是BOM。程序可以通过BOM来识别文件是否UTF-8编码。对大多数程序来说,这是个很聪明的方法。但遗憾的是,有些程序并不能很好的识别它,例如Win的记事本、Firefox还有PHP。

就UTF-8编码的PHP来说,由于代码必须在<?php code ?>这样的PHP标签中才会执行,而BOM总是在文件头的3个字符中,所以这3个字符会直接输出,在浏览器看到的是乱码或者空行。更严重的是”受COOKIE送出机制的限制,在这些文件开头已经有BOM的文件中,COOKIE无法送出,因为在COOKIE送出前PHP已经送出了文件头。”至于解决方法,很简单,如果只包含英文字符,可以把文件转成ASCII编码,如果包含中文字符,则需要转成没有BOM的UTF-8编码。以UltraEdit_v13为例,打开文件,点击菜单”File”,然后是”Save as”或者直接按快捷键F12,在弹出的对话框中选择”UTF-8-无BOM”即可。不过,您不必那么麻烦,我找到了一款开源免费的轻量级代码编辑器notepad++(点击打开)

DIV+CSS 圆角矩形

圆角矩形一般用圆角图片+DIV定位实现,
偶这次完全用DIV+CSS实现了,
本想用做网站的分栏框中,
后来想了下,似乎不太实用,
假如一个页面有10+N个矩形框,
意味着页面中嵌套的DIV至少会有60+N个,
这样冗长的代码,似乎不如图片来得简单,
汗……
不知会不会加重浏览器负担,
另外浏览器兼容性问题还没有测试。
继续汗……
……
似乎钻牛角尖了,
迷茫这种方法是否具有实用价值,

但,代码还是提供出来,寻求更简单的方法ing。

<style>
.ta1,.ta2,.ta3,.ta4,.tb1,.tb2,.tb3,.tb4,.tc{display:block;overflow:hidden;}
.ta1,.ta2,.ta3,.tb1,.tb2,.tb3{height:1px;}
.ta2,.ta3,.ta4,.tb2,.tb3,.tb4,.tc{border-left:1px solid #999;border-right:1px solid #999;background:#CCC;}
.ta1,.tb1{margin:0 5px;background:#999;}
.ta2,.tb2{margin:0 3px;border-width:2px;}
.ta3,.tb3{margin:0 2px;}
.ta4,.tb4{margin:0 1px;height:2px;}
.text{margin:0px 20px;font-size:20px;}
</style>

 

 

 

 

 

  

DIV+CSS 圆角矩形

 

 

 

 

 

</div>