手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表2012年03月的文章

phpQuery的一个小疑问。

最近在使用phpQuery处理xml的时候发生了一点小问题。由于xml还算是比较规范,但我又不想用simplexml_load_string,所以就偷懒用phpQuery处理了。
但在处理的时候发现一个问题,比如我要处理的内容是:

XML/HTML代码
  1. <title>揭秘日本巨型OLED地球仪:实时显示地球变化</title>  
  2. <link>http://news.dili360.com/gclw/xxjs/2012/0312/32136.shtml</link>  
  3. <description><a href='http://news.dili360.com/gclw/xxjs/2012/0312/32136.shtml'><img src='http://image.dili360.com/news/gclw/xxjs/2012/0312/36_5132136203_20120312094816.jpg' style='border: 1px solid #000000;'/></a>   新浪科技讯 北京时间3月12日消息,据国外媒体报道,如果你前往日本东京,别忘了去参观一下“未来科学馆”(Miraikan),这里展示着一些最尖端的技术成就。就在去年年中,这里揭幕了全世界首个大型OLED显示屏,直径超过19英尺(约合5.8米)。尽管名叫“Geo-Cosmos”,但这并非一般的地球仪,它几乎能实时显示我们这颗星球上正在发生的一切!全球各地的科学家和研究机构将数据发送给Geo-Cosmos,后者将其呈现给观众。   这..</description>  
  4. <category>中国国家地理网地理资讯频道</category>  
  5. <author>dili360.com</author>  
  6. <pubdate>2012-03-12 09:48:16</pubdate>  

请看加红的那一段。
当我用phpQuery处理完后,发现,右边的</link>不见了。其他元素都正常。我的心一下子就碎了。
开始以为页面有问题,但怎么处理都是这样,最终只能将link换成了url来 进行处理。说实话,心是哇凉哇凉的。。

但是,同事在win下面就没有这个问题,我在ubuntu下就有这个问题。(我现在不知道是否我的PHP版本有问题,还是平台的问题,也没有心思深究了)【同事是5.3.9,我是5.3.6】,

Tags: phpquery

PHP 5.4 更新

有些更新由于没有仔细看,结果就出错了,所以,还是COPY出来,以后查起来方便一点,顺便告诉自己,session函数有部分不能用了。。。

Backward Incompatible Changes

Although most existing PHP 5 code should work without changes, please take note of some backward incompatible changes:

  • Safe mode is no longer supported. Any applications that rely on safe mode may need adjustment, in terms of security.【如果有运行在安全模式下的程序,要发了。。。。】
  • Magic quotes has been removed. Applications relying on this feature may need to be updated, to avoid security issues. get_magic_quotes_gpc() and get_magic_quotes_runtime() now always return FALSE. 【这个是早就知道了】set_magic_quotes_runtime() raises an E_CORE_ERROR level error.
  • The register_globals and register_long_arrays php.ini directives have been removed.【第二个函数没用过,现在也不用了】
  • Call-time pass by reference has been removed.【早就不用了。。。。】
  • The break and continue statements no longer accept variable arguments (e.g., break 1 + foo() * $bar;). Static arguments still work, such as break 2;.【HOHO,这个嘛。。。不影响 】
  • In the date and time extension, the timezone can no longer be set using the TZ environment variable. Instead you have to specify a timezone using the date.timezone php.ini option or date_default_timezone_set() function. PHP will no longer attempt to guess the timezone, and will instead fall back to "UTC" and issue a E_WARNING.【这个可能需要注意了。。。。】
  • Non-numeric string offsets - e.g. $a['foo'] where $a is a string - now return false on isset() and true on empty(), and produce a E_WARNING if you try to use them. Offsets of types double, bool and null produce a E_NOTICE. Numeric strings (e.g. $a['2']) still work as before. Note that offsets like '12.3' and '5 foobar' are considered non-numeric and produce a E_WARNING, but are converted to 12 and 5 respectively, for backward compatibility reasons.【。。。。。会有意外了】
  • Converting an array to a string will now generate an E_NOTICE level error, but the result of the cast will still be the string "Array".
  • Turning NULL, FALSE, or an empty string into an object by adding a property will now emit an E_WARNING level error, instead of E_STRICT.
  • Parameter names that shadow super globals now cause a fatal error. This prohibits code like function foo($_GET, $_POST) {}.【难道有人这么用过???】
  • The Salsa10 and Salsa20 hash algorithms have been removed.
  • array_combine() now returns array() instead of FALSE when two empty arrays are provided as parameters.
  • If you use htmlentities() with asian character sets, it works like htmlspecialchars() - this has always been the case in previous versions of PHP, but now an E_STRICT level error is emitted.

The following keywords are now reserved, and may not be used as names by functions, classes, etc.

The following functions have been removed from PHP:

升级sablog 2.0失败

纠结了很久,还是失败了。
看了一下出问题的step,发现是drop table的问题,我开始以为是我的权限有问题。但。。。我设置为ROOT也没用。所以暂时不升级了。真纠结啊

---------
顺便:
从PHP5.4开始,session_register函数禁用了。所以,如果还在使用Sablog1.6的人,记着。。。seccode.php中,这一行注释掉,否则。。。验证码就出不来了。
---------
由于升级到5.4后,默认display_error为OFF,所以很多错误 都显示不出来,排查了好久才解决这个问题啊。

Tags: sablog

转:辞职创业常犯的5大错误

有两个朋友辞职创业了,一个是阿里系的,一个是QQ系的。一两年前也曾经有这样的想法,但最终还是不够大胆,帮人打工和帮自己打工,我选择了前者。其实当时如果有两个项目可以维持,说不定就真的投入了。。。。
上文章看看误区先,这是创业帮的一篇文章 :http://xueyuan.cyzone.cn/gushi-ganwu/224015.html

很多人都会梦想能够辞掉工作自己创业,尤其是那些在职场为晋升努力了很多年的人。但是每次工作变动都会伴随着诸多风险,而辞职创业这样的转变更是件高风险的事儿。对个人来说,创业是一次重大的跨越,尤其在当前经济不稳定的条件下,创业更需要做好充分的准备。

多年前,《哈佛商业评论》(Harvard Business Review)刊登了一篇文章,名为《跳槽者应避免的5种错误做法》,文章列举了普通人在换工作时常犯的5种错误。我敢肯定,这其中的每一条都适用于那些 正考虑辞职,打算自己或与他人合伙创业的人。这5种常犯的错误如下:

1、未做充分调查研究。换工作之前,起码有这样几个问题需要考虑:你的目标、财务稳定性、企业文化契合度以及工作职责。那些打算辞职创业的人都有必要思考一下以上所有问题。或者与一些经验丰富的创业者谈谈你的创业计划,看看你的想法是否切合实际,获得肯定后再辞职。

2、单纯为钱辞职创业。记住,“这山望着那山高”是多数人的通病。创业在短期内不太可能赚到比打工更多钱,实际上,往往相反,大多数创业者在刚开始 1-2年内是没有收入的,而且也很难找到对其创业项目感兴趣的投资人。我时常告诫打算创业的人,最好在创业项目产生实际收入后,再辞去日常工作。

3、创业是为了逃避工作。如果你不顾一切地铤而走险,开始创业,你可能发现你的创业之路举步维艰,与受雇于人比起来,压力更大而且状况更无法让人满 意。工作量大、工作不被认可或压力过大不是创业的理由,也通常得不到令人满意的结果。而那些认为自己有能力,但是对眼下所从事的工作不满意或者厌倦的人, 反倒更适合做创业者。

4、高估自己。根据很多猎头顾问的观点,现在很多求职者对他们的工作技能、职业规划和弱点的认识都不切合实际。如果你在几家公司的工作经历都不愉快,那么很可能你也存在类似问题。而这些问题会在创业过程中会进一步放大,因为你现在是公司的老板,并且要为所有问题负责。

5、没有长远打算。从受雇于人到创业者是生活方式的重大转变,也是职业生涯的重大转变。创业不是在短期内可以积累大量财富的捷径,更不是逃避问题的方法。创业是一项艰苦的工作,只有通过不断学习和坚持不懈才能有所回报。

很明显,以上这些错误的做法有一定的内在关联性。当人们对自己估计过高,就会更加看重工作绩效的回报,并且对公司所给的报酬感到不满。这种状态会导 致他们冲动地做出创业决定,而对自己创业能力和创业机会缺乏认真考虑,在创业过程中他们也往往失望地会发现,创业更加让人不自在。

所有打工者都需要对上述这些问题进行认真的考虑,因为根据美国劳动统计局(U.S. Bureau of Labor Statistics)的统计数据,婴儿潮出生的人一生平均要换10次工作。在一家公司工作到退休或者一生都在创业的时代已经一去不复返了。近年来商业环 境快速变化,所以我们也需要与时俱进。

决定创业之前,可以问自己这样一个问题“如果事实证明我的决定错了怎么办?”要做好减少损失和勇往直前的准备。再三地从一种困境跳入另一种困境是不 可取的,不管在哪种情形下,都要认真对自己的优点和缺点有清楚的认识。乐于倾听他人对你的看法或指导,并且勇于改正自己的缺点。

还有最重要的一点,要了解工作中哪些因素能让你最感满意,对你来讲,怎样才算是达到工作与生活之间的最佳平衡状态。作为成年人,我们大多数时间都要在工作中度过,而生命却太过短暂,不应该将宝贵的时间浪费在对错误决定的懊悔中。

----------
看到上面的问题,你觉得你真的考虑好了吗?

Using Redis as a backend for Active Record

说白了,yiiredis中的AR功能的model其实就是一个hash,只是稍作封装了而已

官方有例子:

Using Redis as a backend for Active Record

It is possible to store active record like structures in redis using ARedisRecord.

Note: this is experimental functionality and may be subject to change

$record = ARedisRecord::model()->findByPk(1); // loads a record with a unique id of 1 $record->name = "a test name"; // sets the name attribute on the record $record->somethingElse = "some other value"; $record->save(); // saves the record to redis $record->delete(); // deletes the record from redis

不过,上面的例子不能直接拿来用,因为ARedisRecord是一个abstract类,所以你得写一个类继承于他才行。
顺便,如果用setAttributes的时候,记得加第二个参数(除非你写了rules),否则一定要加第二个参数,不然save不成功哦。
昨天被它折腾了好久才发现
----
笔记而已

Tags: redis, yiiredis, phpredis

Records:30123456