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

几个ZendStudio使用教程

Zendstudio.net,看这个网站的名称就知道,它是专注于zs工具的。
事实上也确实是这样的。站长还提供了一些KEY的生成工具,阿弥陀佛,罪过罪过。。

站长不但对ZS有研究,同时还本着开源的心态,把自己的一些心得整理出来,是flash的哦。大家可以在线观看。。
站长把一些5.5和6.1的使用教程都列出来了。
如果您是使用6.1的话,那就比较方便了。。。直接打开:http://www.zendstudio.net/zend-studio-tutorial/,就可以看到教程。

  1. zend studio 6.1中文视频教程-快速入门
  2. Zend Studio For Eclipse 6.1 视频教程-调试php程序
  3. 让zend studio for eclipse支持xdebug(视频教程)
  4. 在zend studio for eclipse中使用xdebug调试php程序
  5. 在zend studio for eclipse中寻找消失了的zend studio 5.5特色功能(筹备中…)
  6. 使用profile来优化你的php程序性能,提高程序效率(筹备中…)

新站上只有6.1的教程,如果你还在使用ZS 5.5,不用担心,这里也有:

  1. 基础部分:
    1. ZDE的初级安装教程(图)
    2. Zend Studio 5.5.1 界面详细介绍及菜单、工具栏功能详解(图)
    3. Zend Studio 首选项(preferences)功能、设定详解(图)
    4. Zend Studio的特色功能——模板(templates)
    5. zend studio的特色功能——代码片段(code snippets)
    6. Zend Studio快捷键一览表
    7. zend studio 5.5无法打开主界面故障解决方法一例
    8. 修改zend studio 的默认字体 让编辑器看起来更舒服
    9. 用Zend Studio管理数据库—zde的SQL管理器功能介绍

  2. 提高部分:
    1. 服务器调试——Zend Debugger 的安装教程
    2. Zend Studio的远程调试(服务器调试)技术 Zend Debugger(一)
    3. Zend studio的项目管理和服务器调试(视频教程)

-EOF-
写了这么多,也贴了N多链接,就再贴一下zendstudio.net站长的资料吧。。。
大家随便YY去吧

  • 昵称:徐徐
  • 英文名:gently
  • MSN:my-msn
  • 身高:跟姚明没得比
  • 三围:您所在的用户组无权查看该信息
  • 介绍:目前处于IT食物链底层,若在万恶的旧社会,那就是被剥削被压迫的那个阶层。
  • 人生关键词:积极、自信、踏实。

Tags: zendstudio, php, 教程

SSH连接时的乱码解决方法

ssh连接时,发现屏幕上一堆乱码,恐怕这种事情谁都遇到过吧。(我是使用SSH secure shell登录的)
这种情况的发生大多是安装时,语言包选择为中文导致的。一般有以下几种解决方法

1、RH(估计centOS也行)
vim /etc/sysconfig/i18n
内容改为:
LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"

2、UBUNTU
中文版的ubuntu遇到这种问题,可以尝试使用putty,因为putty可以通过修改 font, character set 设置来解决。
设置:
Window -> Appearance -> Font settings 选择宋体或新宋体:
Window -> Translation -> Character set translation on received data 选择 UTF-8:
然后基本就没有问题了,

或者尝试使用secureCRT登录,这款软件也能够自动识别。

再或者尝试把语言换为英文?
修改Ubuntu的命令行语言环境的2个步骤:

1、修改/etc/default/locale
如不存在则新建一个
如下:
LANG='en_US' #中文可以用zh_CN
LANGUAGE='en_US:en' #中文可以用zh_CN:zh

2、reboot即可
locale命令可以列出当前系统所用的所有语言设置

即使你搜索google,基本上也只有这几种解决方案了。呵呵,全部列出来,希望有用

Tags: linux, ssh, 乱码

数组非数字键名引号的必要性

风雪之隅的网站上大多是对PHP的底层进行关注的文章,如果对PHP的核心内容有兴趣不妨多翻阅一下他的网站。

本文的标题,其实是一个老问题了。
大家都知道,PHP对于没有引号的字符串,会当成常量来处理,如果该常量不存在,则直接输出该字符串。也就是多做了几步处理。
事实上,上面的这个知识点,很早就知道,但,不是我自己研究出来的。虽然自己写过代码进行测试过。

雪候鸟则直接从OPCODE上进行查看,给你一个直观印象。好,我们来看看原文吧
地址:http://www.laruence.com/2009/04/24/695.html
内容:
我看到过很多人操作数组的时候, 对于数组中的非数字键名不使用引号,

PHP代码
  1. $array[key] = $value;  

我可以理解有些人可能会觉得这样的代码很”整洁”, 并且也能正常执行.
更甚至,如果他很”幸运的”php配置的好:

PHP代码
  1. error_reporting = ~E_NOTICE  

他也许永远都沉浸在自己的”整洁”风格中, 看不到任何的NOTICE提示, 也不会意识到, 他这么做, 能损失多少的性能~

来, 我们一起来看看:

PHP代码
  1. good.php:  
  2. <?php  
  3.    $array = array();  
  4.    $i = 0;  
  5.    while(++$i < 1000){  
  6.        $array['good'] = 2;  
  7.    }  
  8. ?>  
  9.    
  10. bad.php:  
  11. <?php  
  12.    $array = array();  
  13.    $i = 0;  
  14.    while(++$i < 1000){  
  15.        $array[good] = 2;  
  16.    }  
  17. ?>  
分别看运行时间(多次平均时间):
加引号的:

XML/HTML代码
  1. $ time php -f good.php  
  2.   
  3. real    0m0.013s  
  4. user    0m0.005s  
  5. sys     0m0.007s  
不加引号的:

XML/HTML代码
  1. $ time php -f bad.php  
  2.   
  3. PHP Notice:  Use of undefined constant bad - assumed 'bad' in /home/huixinchen/tmp/bad.php on line  
  4. (此处省略999行NOTICE)  
  5. real    0m0.100s  
  6. user    0m0.020s  
  7. sys     0m0.029s  
看看,差别有多大?
哦, 或许我们应该模拟一下那些”幸运的”人们的情况, 去掉花费在记录NOTICE的开销, 看看~

XML/HTML代码
  1. $ time php -f bad.php  
  2.   
  3. real    0m0.037s  
  4. user    0m0.018s  
  5. sys     0m0.018s  
我们可以看出, 基本上, 使用引号,和不使用引号的效率损失在3倍以上

那么, 这些效率损失到哪里去了呢?

我们分别看下, 俩个文件生成的OPCODE序列:

good.php :

C++代码
  1. filename:       /home/huixinchen/tmp/good.php  
  2. compiled vars:  !0 = $array, !1 = $i  
  3. line     #  op                           fetch          ext  return  operands  
  4. -------------------------------------------------------------------------------  
  5.    2     0  INIT_ARRAY                                       ~0  
  6.          1  ASSIGN                                                   !0, ~0  
  7.    3     2  ASSIGN                                                   !1, 0  
  8.    4     3  PRE_INC                                          $3      !1  
  9.          4  IS_SMALLER                                       ~4      $3, 1000  
  10.          5  JMPZ                                                     ~4, ->9  
  11.    5     6  ZEND_ASSIGN_DIM                                          !0, 'good'  
  12.          7  ZEND_OP_DATA                                             2, $6  
  13.    6     8  JMP                                                      ->3  
  14.    8     9  RETURN                                                   1  
  15.         10* ZEND_HANDLE_EXCEPTION  
bad.php :
C++代码
  1. filename:       /home/huixinchen/tmp/bad.php  
  2. compiled vars:  !0 = $array, !1 = $i  
  3. line     #  op                           fetch          ext  return  operands  
  4. -------------------------------------------------------------------------------  
  5.    2     0  INIT_ARRAY                                       ~0  
  6.          1  ASSIGN                                                   !0, ~0  
  7.    3     2  ASSIGN                                                   !1, 0  
  8.    4     3  PRE_INC                                          $3      !1  
  9.          4  IS_SMALLER                                       ~4      $3, 1000  
  10.          5  JMPZ                                                     ~4, ->10  
  11.    5     6  FETCH_CONSTANT                                   ~5      'bad'  
  12.          7  ZEND_ASSIGN_DIM                                          !0, ~5  
  13.          8  ZEND_OP_DATA                                             2, $7  
  14.    6     9  JMP                                                      ->3  
  15.    8    10  RETURN   

我们可以看出(其实,根据NOTICE的提示也知道), PHP会把没有引号引起来的键名当作是常量去获取, 当找不到的时候, 抛出一个NOTICE, 然后再根据”常量明”生成一个字符串, 然后再讲这个字符串做为键名继续~

聪明的你一定会想到, 可能会出现如下不可预期的错误:

PHP代码
  1. define('key_name' , 'laruence');  
  2. ....  
  3. //省略很多行代码  
  4. $array[key_name] = 2; //变成了 $array['laruence'] = 2;  
  5. //这样的错误, 你会很郁闷吧?  
明白了么? 数组中的非数字键的键名一定要有引号啊~
哦, 还记得有人会说, 那在字符串变量替换的时候, 写引号会导致错误,
恩, 标准写法:
PHP代码
  1. $string = "variable value is {$array['key']}"  

我很赞同:”be lazy”, 但是, lazy也是应该有原则的.

最后, 好的代码,不应该通过关闭error_reporting来伪装.

附注, FETCH_CONSTANT OPCODE中找不到常量的相关逻辑:

C++代码
  1. ....  
  2.         if (!zend_get_constant(opline->op2.u.constant.value.str.val, opline->op2.u.constant.value.str.len, &EX_T(opline->result.u.var).tmp_var TSRMLS_CC)) {  
  3.             zend_error(E_NOTICE, "Use of undefined constant %s - assumed '%s'",  
  4.                         opline->op2.u.constant.value.str.val,  
  5.                         opline->op2.u.constant.value.str.val);  
  6.             EX_T(opline->result.u.var).tmp_var = opline->op2.u.constant;//获取"常量"名字符串  
  7.             zval_copy_ctor(&EX_T(opline->result.u.var).tmp_var);//分配空间,生成字符串  
  8.         }  
  9. ....  

 

 

——EOF——

膘叔最受不了的,就是discuz,特别是模版中的变量,全部是不含单引号的。写起来是方便啊。但是性能不敢恭维。所以common.inc.php的前面几句就是error_reporting了。。隐藏掉,看你怎么办,有本事你咬我呀。。

我还能怎么办?

Tags: 风雪之隅, 细节

SSH Client 会话空闲超时的解决办法

摘抄这一篇文章的内容,是因为这两天正好用到。
SSH连接上服务器后,人走开了,或者去忙其他事情了,结果回来一看,光标不动了。原来已经断却了连接。
看到这篇文章是24号,遇到问题是27号,因为对文章有印象,所以继续打开一看,原来我已经打上星标了。所以,摘抄下来。希望给其他使用UBUNTU的人也多一次GOOGLE搜索的命中率。

原文链接:SSH Client 会话空闲超时的解决办法

原文内容:

最近工作时经常要同时维护 3 台 Ubuntu 的主机,但当 SSH Client 窗口在几分钟没有键盘操作的时候,会话就会超时断线,特别对于 SFTP 管理时会更加烦躁 :(

找了一些关于 SSH Server 的资料,发现通过修改 sshd 的配置文件,能够让 SSH Server 发送“心跳”信号来维持持续连接,下面是设置的内容

打开服务器 /etc/ssh/sshd_config,我在最后增加一行

ClientAliveInterval 60
ClientAliveCountMax 1

这 样,SSH Server 每 60 秒就会自动发送一个信号给 Client,而等待 Client 回应,(注意:是服务器发心跳信号,不是客户端,这个有别于一些 FTP Client 发送的 KeepAlives 信号哦~~~),如果客户端没有回应,会记录下来直到记录数超过 ClientAliveCountMax 的值时,才会断开连接。

当然也可以开启 top 命令,还可以监测机器状态。

Tags: ubuntu, ssh

请来访者帮忙测试一下网页打开速度

如题,请您把对本站全部打开所耗费的时间做一下评价。谢谢

以便让我可以确定是否选择以目前的线路来继续进行托管。
您的意见对我十分重要,感谢您

Tags: 测试