Submitted by gouki on 2011, December 15, 3:55 PM
tidy库对于我们处理非标准HTML来说是一个好工具,当然,由于他需要在服务器上配置,所以相对就较少人用它,而是HtmlPurifier,毕竟它不需要在服务器上配置直接就可以配置着用了。
为什么我们会用这些工具呢?主要还是由于国内做页面啊,那是相当的不小心,不是这里标签不闭合,就是大小写混用,对于我们做页面分析的来说,就痛苦很多了。肿么办肿么办?
OK,htmlpurifier和tidy库就是帮我们解决这些问题的小工具。
这次要讲的是tidy库参数引发的问题,tidy的函数其实不多,平时我们一般只用tidy_repair_string或者tidy_repair_file就完了,可是就是因为这个REpair导致我的代码出了点问题
tidy_repair_string共需要三个参数,第一个参数string就不用提了,第二个参数是config,第三个参数是encoding。
NND,明明config数组中就可以指定encoding的,为什么还要用第三个参数??
我在处理的时候,在config中指定了input-encoding和output-encoding,分别是实际的编码,但在处理完后。发现有问题,好象页面中有几个字符被处理坏了。导致了UTF-8不认。
最后,只能tidy_repair_string($string,null,"UTF-8");
但这样,好象还是有问题,因为tidy支持的编码都是utf8之类的,参考:http://tidy.sourceforge.net/docs/quickref.html
LOOK:Example: raw, ascii, latin0, latin1, utf8, iso2022, mac, win1252, ibm858, utf16le, utf16be, utf16, big5, shiftjis
因此,写UTF-8有可能会出错(我没有仔细试)
上面的:tidy_repair_string($string,null,"UTF-8");其实还是错的,PHP报错说是找不到 指定的配置文件。所以NULL不能直接用啊,tidy_repair_string($string,array("wrap"=>0),"utf8")
直接解决问题。
(事实上,我一直在怀疑我的页面中是否有一些字符串tidy库处理的有问题,比如一些特殊字符,正如上面所写的,它支持的编码有问题,而我写的input-encoding为gb2312,所以就不正常了?转换有问题?)没有很多时间解决这个问题,主要是被他折腾了一天,所以记录一下。
Tags: tidy, htmlpurifier
PHP | 评论:0
| 阅读:16205
Submitted by gouki on 2011, December 14, 6:20 PM
机器上早就没有windows了,所以bootcamp分区对我来说也就没有了意义,主要是机器刚拿到手的时候,被IT分盘分的太厉害了。一半对一半啊。
所以找资料想删除这个bootcamp分区,或者将它的容量再减少一点。
找了一下资料,发现原来在工具的磁盘管理里就可以直接操作:
进入实用工具-》磁盘管理
点中左侧的硬盘(不是点中分区哦,是点中硬盘),在右侧的TAB中,选择分区,可以进行删除或者调整容量大小。
灰常方便,我是将它删除并且重建了一个50G左右的分区,用来存放我的一些重要文件(比如:软件、我的WEB代码 之类的。),这样以后我要备份也只备份这一个分区就OK了
Tags: apple, bootcamp
苹果相关 | 评论:0
| 阅读:21220
Submitted by gouki on 2011, December 13, 9:39 PM
Onenote是我在WIN下用的最多的一个程序之一,嗯,Office里面就这一个软件我最喜欢了。为了它,我买了个所谓的正版的Office。然而,在MAC下是无法使用的,这个,你懂的。
看到36氪上的这个新闻的时候,很是欣慰,原来微软哥没有忘记我们,没有抛弃我们,虽然这仅仅只是一个简单的版本,而且是基于skydrive的,但总算有了一个开头了。
先看新闻:
微软刚刚升级了iOS上的OneNote应用到1.3版本,新版将支持任何运行iOS 4.3或以上系统的设备,包括iPad和iPad 2。
除了开始支持新的设备,iPad版本的OneNote还充分利用了平板电脑的大屏幕优势,在使用地图、侧边栏菜单以及其他iPad专有功能时更加适合。
OneNote在2003年第一次随微软Office套件一起发布,今年1月份时候移植到了iPhone上,作为Office套件的一部分,它是唯一一个可以在iOS设备上使用的Office应用,OneNote使用微软的SkyDrive云服务自动跨设备同步笔记。
尽管OneNote应用本身免费,但是用户的笔记数被限制在500以内,超过500后则需要付费,iPhone和iPod Touch用户需要支付4.99美元,iPad用户需要支付14.99美元。如果你在SkyDrive上有超过500条笔记,你仍然可以在你的iOS设备上查看它们,不过微软说,你不能够编辑这些笔记或新建笔记。
不知道微软扩展OneNote支持iPad是意味着要将更多Office应用带到iOS设备上?我们拭目以待。
原文来自:http://www.36kr.com/p/68055.html
----------
静候mac版本,那样我就真的可以完全脱离windows了(除了玩游戏。NND,arclive没法玩,CS没法玩,真纠结)
Tags: iphone, ipad, onenote, office
苹果相关 | 评论:0
| 阅读:19519
Submitted by gouki on 2011, December 13, 9:35 AM
看到张宴的微博上有一条消息:
推荐一个工具:imewlconverter - 深蓝词库转换( http://t.cn/h4YOCi ) ,可以将搜狗拼音输入法细胞词库( http://t.cn/hWFEQ )*.scel 格式转换成文本格式。然后,可以将提取的一些专用词库,用于中文分词接口中去。
不错的工具,毕竟做分词的也好,做其他的也好,都可能会需要用到这个。所以我先备份了这条微博
官方地址是:http://code.google.com/p/imewlconverter/
张宴的微博:http://weibo.com/rewinx
OK,顺便再贴一下张宴的微型HTTP队列:http://blog.s135.com/httpsqs/
所谓的优点:
HTTPSQS 具有以下特征:
● 非常简单,基于 HTTP GET/POST 协议。PHP、Java、Perl、Shell、Python、Ruby等支持HTTP协议的编程语言均可调用。
● 非常快速,入队列、出队列速度超过10000次/秒。
● 高并发,支持上万的并发连接,C10K不成问题。
● 支持多队列。
● 单个队列支持的最大队列数量高达10亿条。
● 低内存消耗,海量数据存储,存储几十GB的数据只需不到100MB的物理内存缓冲区。
● 可以在不停止服务的情况下便捷地修改单个队列的最大队列数量。
● 可以实时查看队列状态(入队列位置、出队列位置、未读队列数量、最大队列数量)。
● 可以查看指定队列ID(队列点)的内容,包括未出、已出的队列内容。
● 查看队列内容时,支持多字符集编码。
● 源代码不超过800行,适合二次开发。
可以利用它来做很多事情,比如我曾经想做的短信队列发送,原来我都是利用MYSQL来做队列的,这样的效率不是特别高。而且额外写了很多程序。现在可以偷懒了。
Tags: 分词, 开源, 词库转换
Software | 评论:0
| 阅读:16717
Submitted by gouki on 2011, December 13, 9:22 AM
窝窝(Walkerlee)最近说他折腾了一个SQL,提升了他的工作效率。表示要到博客来投稿,今天我把这个SQL放出来了。
嗯。我总不能说,因为我确实会这个SQL就断了他投稿的心,否则他会砍我的。
前因:
数据库结构如下:
要求:一句SQL实现,分别统计type1,2,3,4 一共多少money (group by uid)
原先做法:分开查询 然后用php合并结果,如
SQL代码
- select sum(money) form test where type = 1 group by uid
- select sum(money) form test where type = 2 group by uid
- select sum(money) form test where type = 3 group by uid
- select sum(money) form test where type = 4 group by uid
现在要求一句SQL。
窝窝问我的时候,我说if(a,b,c)这个函数可以解决,于是他很愤怒。。。。
贴出了最终的SQL语句:
SQL代码
- SELECT
- uid,
- SUM( IF(`type`=1, money, 0 ) ) AS `BuyByCash`,
- SUM( IF (`type`=3, money, 0 ) ) AS `BuyByCard`,
- SUM( IF( `type` IN (1,3), money, 0 ) ) AS `BuyByCashAndCard`,
- SUM( IF(`type`=2, money, 0 ) ) AS `SellByCash`,
- SUM( IF(`type`=4, money, 0 ) ) AS `SellByCard`,
- SUM( IF( `type` IN (2,4), money, 0 ) ) AS `BuyByCashAndCard`,
- SUM(money) AS `Amount`,
- COUNT(*) AS `DataNums`
- FROM `test`
- group by `uid`
窝窝比较郁闷,因为以前处理起来很麻烦,而现在一句就解决了。
此事完结后,他又介绍了一个小技巧:
我有一个relation表,用来存储订单下面的游客
SQL代码
- ALTER TABLE `travel_order_customer_relation`
- ADD CONSTRAINT `travel_order_customer_relation_ibfk_1` FOREIGN KEY (`oid`) REFERENCES `travel_orders` (`id`) ON DELETE CASCADE;
然后我用了一个外键,这样order被删除时候,这个关系表里面的相关数据也就自动删除了
----
然后我也很郁闷的说,我的数据表不是INNODB的,所以这个功能我不能用。。。也很纠结
Tags: mysql, group, sum, if
DataBase | 评论:0
| 阅读:17450