果然是伤不起啊,轮回,又是一个轮回。
这张图是从这个微博而来:http://t.qq.com/p/t/78616014604612
可以围观。。。
Submitted by gouki on 2011, December 7, 10:12 PM
果然是伤不起啊,轮回,又是一个轮回。
这张图是从这个微博而来:http://t.qq.com/p/t/78616014604612
可以围观。。。
Submitted by gouki on 2011, December 2, 12:19 PM
有意思的文章,大多数时候,我们都是知道\r,\n,\r\n,但为什么是这样的呢,居然找到了一篇科普贴。
来吧,看看为什么吧。
原文来自:【科普贴】话说回车和换行
看xml的时候发现这样的一段话:
XML 以 LF 存储换行
在 Windows 应用程序中,换行通常以一对字符来存储:回车符 (CR) 和换行符 (LF)。这对字符与打字机设置新行的动作有相似之处。在 Unix 应用程序中,新行以 LF 字符存储。而 Macintosh 应用程序使用 CR 来存储新行。
让我对这三个(win,unix,mac)苦逼的主产生了兴趣,为啥你们不一样呢,难道你们认识“回车”和“换行”的时间有先有后吗?为啥没统一或者说为啥产生了CR和LF这两个玩意?说说历史吧!
潜台词:很多时候敲击enter就是换行了呀,还回啥个车,回车就是换行吗?
在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。
于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做"回车",告诉打字机把打印头定位在左边界;另一个叫做"换行",告诉打字机把纸向下移一行。
可能是基于成本和效率的考虑,我认为都统一成一个“回车”就够了,可是当年正是这种想法导致了现在的问题,至于这三家互不相同,我也不知道,各有各的考虑吧,反正蛋疼的是用户,比起现在浏览器的兼容性问题,这算不上问题。
以下是他们表示“下一行”的方式:
OS 表示 C语言表示 16进制表示
windows 回车+换行(CR/LF) \r\n 0x0d0a
UNIX 换行符(LF) \n 0x0a
MAC 回车符(CR) \r 0x0d
看一下在一份xml文件里的情况吧,我没钱买苹果,所以下面不包括MAC OS,果粉别砍我!


至少你知道这是怎么回事了,至少在不同平台之间传送文件时别傻傻的骂别人没整理文件格式,至少...,这还不够吗?
-------------
在用PHP写文件的时候,一般我们都是用\n来解决断行。但这时候,如果用windows下的记事本打开这个文件,你会发现一堆黑框,并且处在一行里。
因此,看了上面的文章后,你会知道怎么办了。突然想到以前的str_replace(array("\r\n","\r","\n"),"<br />",$str), 这种烂代码。当然nl2br就解决这样的功能了。然后再转回来?哎。纠结啊。。
Submitted by gouki on 2011, November 29, 11:23 PM
在直接引用外部图片的时候,经常会出现,该图片来自于XXX网站,请勿盗链
找了一下资料,发现只有几种方法可以解决
1、JS,HTML里嵌入iframe,然后类似地打开一个网页的形式,使得页面认为已经访问过主体网站,所以可以解决防盗链
2、如果页面中的图片是:/xxljaslkdjf/xxx.jpg,而这个图片事实上来自于:xxx.xxx.com网站,这时候在页面的<base >TAG里设置一下,就不需要全文正则替换图片了。灰常方便。。。
3、设置HTTP_REFERER,这个有点麻烦,不是每个站都支持。。。
4、在页面中放置一iframe,地址就是主体网站。然后等访问完成后302跳转到真正的页面,图片就能正常了
5、用URL转发的形式,如:image.php?url=image.path.jpg,通过这种方式,几乎解决了很多问题(但,不能走CDN了。真可惜啊。怎么办呢??生成本地图片后,再由CDN转发?不太现实)
基本上就上述的方法了,如果你还有新方法,请告知
Submitted by gouki on 2011, November 26, 10:05 PM
Yii for sae终于提交到了google code了。
yii framework for sina sae platform. 初步实现将yii framework 移植到 sina SAE云平台。 assets目录生成到storage中,runtime则是用memcached来实现, 也因此需要激活storage和memcached。 几乎不需要改原来的代码,如果需要设置主从数据库,请另外加一个components节点:sdb,配置信息与db一样,但需增加一个 'isSlave'=>true,即OK。不过在这种情况下,所有的model都请继承SaeActiveRecord?。
配置信息中,在params里增加 'params'=>array(
'sae'=>array('storage' => array(),'assets' => 'assets', 'runtime'=>'runtime',), 'db'=>array('slave'=>'sdb', 'master'=>'db',)
);
----
配置起来是不是很简单?
当前目前还是有一点问题的
不过,暂时基本功能都实现了,嗯项目地址是:http://code.google.com/p/yiiforsae/
Submitted by gouki on 2011, November 23, 5:15 PM
这两天在实现Yii for SAE,之所以想实现这样的功能,主要还是YII相对比较深入开发人员的人心吧?
这一定是我的个人偏见,因此不要打口水仗。
开发的时候,遇到的问题大多是runtime目录下的存储,以及主从数据库的问题,因此大部分的精力都是在解决这些。
所幸,还是可以利用yii的一些特性来搞定它。
嗯。70%已经完成了。如果差不多了,到时候会扔到google code上,这样想用的人就直接可以使用啦。
目前还在测试中,可以访问 http://ixyz.sinaapp.com进行测试。