2010-04-06

解决PHP生成UTF-8编码的CSV文件用Excel打开乱码的问题

类归于: PHP — 标签:, , , , maker @ 01:47

其实这个问题很久之前遇到过, 应该是没解决, 当时的情况是openoffice打开正常而excel打开不正常, 后来也没解决了, 只能把编码转了.

这次又遇到这个问题了, 在网上一番寻找, 在一篇java的文章里找到了原因, 是由于输出的CSV文件中没有BOM.

什么是BOM?

在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。
UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。字符”ZERO WIDTH NO-BREAK SPACE”的UTF-8编码是EF BB BF。所以如果接收者收到以EF BB BF开头的字节流,就知道这是UTF-8编码了。
Windows就是使用BOM来标记文本文件的编码方式的。

那么如何在PHP中输出BOM呢?

在所有内容输出之前

print(chr(0xEF).chr(0xBB).chr(0xBF));

原文地址: http://foolbird.net/1517.html

2009-10-27

symfony cheat sheet

类归于: symfony — 标签:, , maker @ 12:44

上一篇文章里介绍了symfony的cheat sheet,但官方的下载地址貌似被墙,所以我也没有下载到全部的cheat sheet,不过还好bobhero那里有,虽然是1.0的,但很多内容依然很有用。

symfony cheatsheet directory structure and cli

symfony directory structure and CLI

symfony cheatsheet helpers part1 javascript and AJAX

symfony helpers javascript and AJAX

symfony helpers forms

symfony helpers forms

symfony cheatsheet views part1

symfony views part1

symfony cheatsheet views part2

symfony views part2

symfony cheatsheet model part1

symfony model part1

symfony cheatsheet model part2

symfony model part2

symfony model criteria criterionrs

symfony model criteria criterionrs

symfony cheatsheet server validation

symfony server validation

symfony lime

symfony lime

symfony orm

symfony orm

2009-10-22

Cheat Sheets!

类归于: PHP, symfony — 标签:, , maker @ 16:59

bobhero就喜欢搞一些稀奇古怪的东西,800块的古董式键盘买了两个外加一个超级怪异的轨迹球鼠标,智能手机买了两个一个打电话一个玩日历,Arch Linux装了Awesome然后接了两个显示器。早在两年之前,我刚来公司的时候,就对他的这些卡片很感兴趣。

cheatsheets

这个东西的英文名叫cheat sheet,找了很久也没有找到一个合适的中文名,不过我觉得叫备忘卡很合适。从以往的工作上来看,cheatsheet的确帮了不少忙,最关键是省了翻手册的时间,网上有很多的cheat sheet,打印下来,塑封,然后放在电脑旁,下面是来自Added Bytes的cheat sheets。

PHP  (V1) PHP (V2) Mysql
php-cheat-sheet-v1 php-cheat-sheet-v2 mysql-cheat-sheet-v1
JavaScript CSS (V1) CSS  (V2)
javascript-cheat-sheet-v1 css-cheat-sheet-v1 css-cheat-sheet-v2
mod_rewrite  (V1) mod_rewrite (V2) HTML
mod_rewrite-cheat-sheet-v1 mod_rewrite-cheat-sheet-v2 html-cheat-sheet-v1
正则表达式 (V1) 正则表达式 (V2) ASP/VBScript
regular-expressions-cheat-sheet-v1 regular-expressions-cheat-sheet-v2 asp-cheat-sheet-v1
Python (V1) Ruby on Rails Subversion(SVN)
python-cheat-sheet-v1 ruby-on-rails-cheat-sheet-v1 subversion-cheat-sheet-v1

请访问 http://www.addedbytes.com/cheat-sheets/获取更多的CheatSheets.

注意:打印cheatsheet最好打印pdf版本的,图片格式的清晰度可能不是很好。忘了提醒大家了,塑封的时候可以把两张塑封到一起,比如PHP(V1)和PHP(V2)可以塑封个反正面。

下面这些是symfony官方提供的cheat sheets,貌似是1.0的,不过或多或少还有些用处。

Symfony Admin Generator Symfony Directory Structure And CLI
symfony-admin-generator symfony-directory-structure-and-cli

请访问http://trac.symfony-project.org/wiki/CheatSheets来获取更多的symfony cheat sheets。下载链接我这里访问不了,不知道是删掉了还是被墙了,有新的发现我会再发出来。

http://www.addedbytes.com/cheat-sheets/php-cheat-sheet/

2009-01-18

archlinux 安装 LAMP环境

类归于: Arch, PHP — 标签:, , , , , , bobhero @ 13:25

archlinux 安装 LAMP环境

archlinux 据说是很牛的系统  试了以后 的确很牛,牛到我累了好长时间也不能成功驾驭

不过工作重要 还是先说说LAMP环境如何来做吧。

archlinux 有一个传说中很牛的 类似 apt-get 的东西  叫 pacman

用命令

pacman -S apache mysql php

就可以直接把 apache mysql php 基本安装完成 我不确定顺序是否有影响 但是我建议大家如果想事少一点还是按这个顺序来吧

不知道从什么时候开始 php有一个openbase_dir 的变量 这个变量标识哪些目录可以用来存放 php文件 即 document root 一定要在openbase_dir 里,否则不会执行

而且 archlinux 的默认的document  root 是 /srv/html 这个目录默认没有 而且当安装apache的安装后 我习惯的测了一下 ,这个目录不存在,会让apache 启动失败,所以我改成了/var/www 结果 php 放在/var/www下时 ,由于不在 openbase_dir里 所以不能执行 而且不报任何错误(由于php.ini的设置)所以就会出现 要么不解释 php文件 ,解释的时候 什么也没有 就是一片空白 一点错误也不报。 最难受的是  当GOOGLE  archlinux lamp 的时候 一点也没有文章 提及这一现像,也没有解决方案 ,让我弄了好长时间才发现解决办法 。

解决办法就是 在php.ini 里 修改openbase_dir  或是 对应的不要修改 把文件直接放到/srv/html里

mysql 也是用得相当吃力 命令行下可以很好的进入 但是phpmyadmin就不可以 提示 连接被拒 也想过很多办法  但是未果 。后来发现不知道什么时候,或是哪条设置让 phpmyadmin不能用root   没有密码的情况下 连接 到mysql 没有办法  只好强行新建一个用户 给出所有权限。还有一点 现在MYSQL聪明了,在 skip-grant-tables时不可以对用户进行操作,这样是安全了很多,也让忘了密码的时候没有办法 进行找回

OK 只要注意以上两点基本上LAMP环境没有问题了

« 较近文章

WordPress 所驱动