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

heredoc 的新用法?

事情的起因是这样的,神仙在群里贴了段代码:
.....
$lang = new Lang();
$code = <<<'EOF'
....
这是其中的两句,于是我对 <<<EOF上为什么加单引号感了兴趣,理论上,这是错误的用法。
神仙说,这是5.3的新用法,防止 定界符 中的变量被解析。

于是看了下手册,果然,<<<有了新的说法
<<<后面的字符串

  1. 如果是双引号:在PHP 5.3.0中还在Heredoc结构中用双引号来声明标志符【功能与原来一致】
  2. 如果是单引号:其实已经换了新名字,nowdoc,

    就象heredoc结构类似于双引号字符串,Nowdoc结构是类似于单引号字符串的。Nowdoc结构很象heredoc结构,但是 nowdoc不进行解析操作 。 这种结构很适合用在不需要进行转义的PHP代码和其它大段文本。与SGML的 <![CDATA[ ]]> 结构是用来声明大段的不用解析的文本类似,nowdoc结构也有相同的特征。

    一个nowdoc结构也用和heredocs结构一样的标记 <<<, 但是跟在后面的标志符要用 单引号括起来,就像<<<'EOT'这样。heredocs结构的所有规则也同样适用于nowdoc结 构,尤其是结束标志符的规则。
    不象 heredocs结构,nowdocs结构可以用在任意的静态数据环境中,最典型的示例是用来初始化类的属性或常量。

官方解释:http://www.php.net/manual/zh/language.types.string.php

如果你觉得翻译的不好,还是看英文版 吧:http://www.php.net/manual/en/language.types.string.php

被QQ exmail的文档坑了下

尝试用qq的企业邮箱发一些邮件的时候,发现被文档坑了一小把(不是QQ的错,是我的错)

文档中说smtp发送的时候,得用SSL方式,同时端口为465或者587,于是我在phpmailer里设定了port = 465,于是直接发送。发现报错。老是说邮件地址有问题

1、检查phpmailer,发现。如果设置port为465,这时候其实是要设定SMTPSecure=ssl的
当设置了SMTPSecure='ssl'后,发送成功

2、其实,也可以不用SSL的,只要仍然使用 25端口发送就OK了,并非一定得用SSL来发送。。。

所以,通过QQ企业邮箱的smtp发送邮件就有两个方法 ,ssl和标准的smtp。
Over

Tags: 企业邮箱

杂记

心里有话想说,心里的痛你懂。

其实我是想表达第一句话的含义,有些话不吐不快

1、带小朋友看电影,在影院里工作人员对那些小孩说请按号入座。于是有个小朋友就说了,是别人抢了我们的座位,我们没有办法啊。说着说着,突然就站起来,大叫,就是TMD那些婊子养的,坐了我们的座位。一时间举座皆惊,这小朋友9~10岁左右,居然说出这些话。。。如今 的家长和老师是怎么教育孩子的?

2、小朋友吃着爆米花,看着电影。老婆说,你爽的很嘛 。小朋友得意的说,是啊,吃爆米花看电影,就是爽

3、年夜饭就是年夜饭

4、职业道德真的很重要,回顾自己工作这么多年,虽然离职的时候代码里会有BUG,但好歹没有窃取过公司信息,也没有散布过公司的信息。。这点我很欣慰,虽然我从来没有什么成绩。

Tags: 喜羊羊

Parallels Desktop 8 pd8 破解 无限试用

说实话,在MAC上面最好的虚拟机,绝对是parallels desktop,没有之一。
试用过几款虚拟机,但效果真的不能让人满意,vmware/vbox都响应没有pd快。而且更重要的是vmware的无缝集成的性能远远不如PD。。。

PD6,我买了,升到了PD7,但在PD7下面retina的分辨率无法调整。
所以想升级到PD8,但因为win用的少,所以现在还在忍着。如果你不想忍,这里有个办法:

内容因版权关系删除,如有需求请自行百度

说实话,macx.cn上代理的PD只有180左右,如果你真的需要,买一个吧。。。当然,如果你觉得你的时间很多,无所谓每个月折腾这么一次,也完全可以象上面那样一次次的折腾的。

Tags: pd8, vmware, vbox

phpstorm 中对filetemplate的优化

在使用phpstorm创建文件的时候,如果是在filetemplate中出现过的。都会调用默认的模版,这时候,可以在其中调整自己的信息,还是比较方便的,比如我现在就是这样设置的:

XML/HTML代码
  1. <?php  
  2. /**  
  3.  * ${FILE_NAME}  
  4.  *  
  5.  * @category   
  6.  * @package    
  7.  * @author   gouki <gouki.xiao@gmail.com>  
  8.  * @version $Id$   
  9.  * @created ${DATE} ${TIME}  
  10.  */   
  11. Yii::import("application.controllers.${DIR_NAME}.*");  
  12. class ${NAME} extends Controller{  
  13.     public function actions(){  
  14.         return array(  
  15.             'index'=>'IndexAction',  
  16.         );  
  17.     }  
  18. }  

嗯,上面的这是标准的代码,不过,如果有命名空间的话。那怎么办呢?因为在官方的模版里,并没有提到这个。。它只提到了这些:

XML/HTML代码
  1. This is a built-in template. It contains a code fragment that can be included into file templates (Templates tab) with the help of the #parse directive. The template is editable. Along with the static text, code and comments, you can also use the predefined variables that will be then expanded like macros into the corresponding values.   
  2. Predefined variables will take the following values:  
  3. ${FILE_NAME}  
  4.    
  5. current file name  
  6. ${USER}  
  7.    
  8. current user system login name  
  9. ${DATE}  
  10.    
  11. current system date  
  12. ${TIME}  
  13.    
  14. current system time  
  15. ${YEAR}  
  16.    
  17. current year  
  18. ${MONTH}  
  19.    
  20. current month  
  21. ${DAY}  
  22.    
  23. current day of the month  
  24. ${HOUR}  
  25.    
  26. current hour  
  27. ${MINUTE}  
  28.    
  29. current minute  
  30. ${PRODUCT_NAME}  
  31.    
  32. current IDE name  

怎么办呢?于是我就想啊想,最后变成了这样:

XML/HTML代码
  1. <?php  
  2. /**  
  3.  *   
  4.  *  
  5.  * PHP version 5.3.x  
  6.  *  
  7.  * @category   
  8.  * @package    
  9.  * @author   gouki <gouki.xiao@gmail.com>  
  10.  */  
  11. #if (${NAMESPACE})  
  12. namespace ${NAMESPACE};  
  13. #end  
  14.   
  15. /**  
  16.  * ${FILE_NAME}  
  17.  *  
  18.  * @category   
  19.  * @package    
  20.  * @author   gouki <gouki.xiao@gmail.com>  
  21.  * @version $Id$  
  22.  * @created ${DATE} ${TIME}  
  23.  */   
  24. class ${NAME} {  
  25.   
  26. }  

如果定义了namespace,那么就在上面写上namespace ${NAMESPACE};
世界清静了好多。关键代码也少写了很多。
当然,其实很多人都是在程序完成后,统一用脚本加上这些注释的。这样倒也是不错。
只是现在这样的方式,在生成API文档的时候会比较方便一点。黑黑

Records:2512345