面试经历

  • 三月 11th, 2010

一直认为在这个城市里面,没有多少php人才,直到昨天面试,发现一个问题竟然是从来没听说过的名词,巨受打击。
一:康盛ucenter跨域登陆的实现方式;
http协议头部分加入P3P(第一次听说这个名词)。至于p3p是什么,阅读这里。g了下发现国内对此技术关注并不是很高,只查到网易通行证在不同域登陆时采用了此;当然还有ucenter。
二:操作ucenter中实例实现同步登陆。
这个以前遇到过,只是没有总结。面试时一直把重点放在了解决通信正常的问题上,其实这完全不是重点。回来后网上查了很多此问题的解决方案,大多都不靠谱,正确解决方案应该是这样:实例ucexample_1.php中有获取cookie函数

$_COOKIE['Example_auth']

,这里面的Example_auth没有被赋值,所以不会被synlogin同步,赋值即可。解决方法有两种,都很简单,一是修改ucexample_1.php文件,把$_COOKIE['Example_auth']换成$_COOKIE['auth'],这里的auth是另外应用的cookie设置的值;

/**
 * 获取当前用户的 UID 和 用户名
 * Cookie 解密直接用 uc_authcode 函数,用户使用自己的函数
 */

if(!empty($_COOKIE['auth'])) {
    
list($Example_uid, $Example_username) = explode("\t", uc_authcode($_COOKIE['auth'], 'DECODE'));
} else {
    
$Example_uid = $Example_username = '';
}

二是修改同步应用的uc.php,在synlogin里面新增一个cookie赋值语句:

_setcookie('Example_auth', _authcode($uid."\t".$username, 'ENCODE'));

两种方法其实是一回事。
回顾这两个问题,发现这两个问题不是一般php人能问的出来的,所以,莫非提问题的那位是康盛的人??无论怎么说,这次面试给我留下了相当深刻的印象,让我学到了一些东西,也思考到很多东西,记之。

不完整宿命论

  • 三月 10th, 2010

肯定有一个不知道叫什么名字的神主宰一切,上帝,佛祖,或者女娲,我干脆就叫他老天爷,或者上苍.他安排决定地球上的一切. 比如发明家的发明,是上苍安排发明家小时候的一切,让他学会一切必要的知识,让他养成勤于思考的习惯,然后再让他从事发明工作,最后引导他发明某些东西. 发明家的努力固然重要,但是这一切都是早就设计好的.只是没有人能提前知道罢了.

上面引用的是在sinablog上看到的评论。第一次看到有人持有这样的观点感到有点不可思议,后来再看到很多人都有这样的观点有点惊奇,再后来看到有人持有这样的观点,我甚至都没什么感觉了,到现在再看到有人这样,我甚至觉得他们可爱了。仔细品味一下这个思想,与我在这篇博文里谈到的蚂蚁在多维空间的观点近乎相同,只是前者是通过个人“感觉”出来的东西,我是理性分析出来的罢了。寻找有类此观点的人,我相信我们会成为很好的朋友,虽然我的性格极端反对这种观点。

密码保护:虎年大吉

  • 三月 3rd, 2010

这是一篇受密码保护的文章。您需要提供访问密码:


php5.3开始出现的Function ereg() is deprecated Error问题解决办法

  • 二月 28th, 2010

PHP 5.3 ereg() 无法正常使用,提示“Function ereg() is deprecated Error”。问题根源是php中有两种正则表示方法,一个是posix,一个是perl,php6打算废除posix的正则表示方法所以后来就加了个preg_match。此问题解决办法很简单,在ereg前加个过滤提示信息符号即可:把ereg()变成@ereg()。这样屏蔽了提示信息,但根本问题还是没有解决,php在5.2版本以前ereg都使用正常,在5.3以后,就要用preg_match来代替ereg。所以就需要变成这样,原来:

ereg("^[0-9]*$",$page)

变成:

preg_match("/^[0-9]*$/",$page)

特别提醒:posix与perl的很明显的表达区别就是是否加斜杠,所以与ereg相比,后者在正则的前后分别增加了两个”/”符号,不能缺少。
Tips:此问题在php5.2之前版本不会出现。
=====================================
好心情不知从何而来,打开窗子暮然发现:下雪了。
=====================================
从蜘蛛发现discuz X在http://www.discuz.org开始测试了

discuz in iphone

  • 二月 27th, 2010

这两天一直在搞这个,话不多说,先上图:
0123

js中getYear()在不同浏览器中的兼容性及解决方案

  • 二月 22nd, 2010

在调试程序时,客户有要求页首需要增加时间显示。显然就用到了Date()中的getYear()来直接显示年份:

var now  = new Date();
var year = now.getYear();
document.write(year);

IE显示正常,但在firefox和chrome下显示为110年(应该显示为1900+110=2010年),在网上搜索了一下答案,得到结论是IE为了提高兼容性,只要通过Date()取得的年份是两位或三位,那么就认为人的寿命不可能是1900年之多,所以智能的自动增加1900作为显示结果,即用getYear()即可显示为2010。但对于firefox和chrome等遵循标准的浏览器来讲,这样的做法显然有些可笑,于是搜索到这个解决办法:

var now  = new Date();
var year = ( now.getYear() < 1900 ) ? ( 1900 + now.getYear() ) : now.getYear();
document.write(year);

上面的解决办法是对年份进行判断,小于1900则自动加上以显示正确年份,这样就完全兼容了所有浏览器的年份显示。

其实这里要写的不只是上面的解决方案,最佳解决方案是这样的:getYear()是js1.0标准的旧用法,现在提倡用getFullYear()即可得到完整年份:

var now  = new Date();
var year = now.getFullYear();
document.write(year);

祝大家虎年如意

  • 二月 13th, 2010

祝认识我的所有人:虎年吉祥、身体健康、万事如意!我就不再一一发短信了

有希望是幸福的

  • 二月 10th, 2010

对阿凡达的期待远远大于其他电影,《阿凡达》仍然一票难求,只有明天再看,今天只好看了《锦衣卫》。对此电影没有写观后感的欲望,影片中只有那些大漠风情的片段深刻的留在脑海—-那应该是孤独存在的地方。看之前的一些生活中的想法,在影片中似乎找到了解释,恩—-有希望是幸福的。

下午4点看了阿凡达,影院人员爆满。可惜立体效果没有想象中好,加之个人戴的眼镜与3d眼镜冲突,需要戴两个眼镜看,实在难受。完全没有享受到3d带来的震撼,将来有机会去imax看吧。。

小新闻一则

  • 二月 8th, 2010

先看新闻一则。

回忆起n年前,许昌某处,全华永普张旭我们一起闲聊的时候,忘了是哪个说的:hd呀,你看人家那个李强……(后面省略)。当时确实不以为然,自从经历了一些事情后,那些邪恶的想法就从来消失在萌芽状态,感觉这些想法有些不靠谱。我应该在内心里感谢大学里面的老师们,给我了很好的学习机会和很多帮助;感谢张旭和我一起体验第一次坐电梯的感觉;感谢在cm工作的几年里接受的正面的文化熏陶,使我受益匪浅;感谢几位好朋友一起交流而意识到的想法。看到这个新闻后我就在想,如果我当时听取了那个建议,那现在这个新闻中是否就会出现我的名字了。

于是,我的大脑立刻又出现了那句我已经给很多人讲过的话:小胜在技巧,中胜在实力,大胜在人格。

如今似乎又回到了刚毕业的状态,又要做出一些选择,只不过在选择中承受了更大的压力。好的是,目标明朗了,那点压力又能算得了什么呢。与以前的虚无的梦想相比,现在的方向似乎更加明确了一点,目标更加清晰一些。早该到来的汹涌的压力们,是迎接你们到来的时候了。

在通往陌生城市的路上,看着窗外一波一波伴随着火车前进而倒退的风景,我在心里对自己说:hi,我回来了。

密码保护:珍藏文章

  • 二月 3rd, 2010

这是一篇受密码保护的文章。您需要提供访问密码:


@