背景:
  我正在读一个不太明白的PHP新程序,像空降到一个众林,出现一个包含/读取某文件是一个黑盒子,想问:如何跟踪PHP在一次执行时读取或include了某个文件?(如配置文件,该配置文件有可能是include进来,有可能是通过直接读取的方式,但不明朗,怎么办好呢?)
PHP高级编程群兄弟出招了:
1.有兄弟建议用find命令查找access time(是文档最后一次被读取的时间)。
2.有兄弟建议get_included_files 来看是哪个文件print_r(get_included_files());,
  也顺便提到其它三个精妙的函数:get_included_files ,get_included_path,get_loaded_extensions。
3.也有兄弟提出用安装扩展的方法去实现:http://pecl.php.net/package/inotify
  也可以用上次说的php_AOP
  aop_add_after("file_get_contents()", 'file_open_call');
  file_get_contents("./test.php");
  要是include进来的文件,直接用get_included_files,来判断就好了.(这个函数很厉害,再次有兄弟推荐。)

里面提到AOP,可以参考:
http://hi.baidu.com/bise86/item/a396eed5c8fae8cc1a72b4a1
http://www.croes.org/gerald/projects/aop/documentation_aop_extension_php.pdf

使用inotify防php木马:http://hi.baidu.com/ostech/item/f729c8c2fa8a392447d5c089
php使用inotify实现队列处理:http://blog.jiunile.com/php%E4%BD%BF%E7%94%A8inotify%E5%AE%9E%E7%8E%B0%E9%98%9F%E5%88%97%E5%A4%84%E7%90%86.html

通过rsync+inotify实现数据的实时备份:http://ixdba.blog.51cto.com/2895551/580280
如果是linux与linux还可以使用rsync+inotify方式进行传输,速度也是非常快的....:
http://my.oschina.net/7shell/blog/57355
背景:查找日志文件,可以用它来找最近修改的日志
查找最近30分钟修改的当前目录下的.php文件
find . -name '*.php' -mmin -30
查找最近24小时修改的当前目录下的.php文件
find . -name '*.php' -mtime 0
查找最近24小时修改的当前目录下的.php文件,并列出详细信息
find . -name '*.inc' -mtime 0 -ls
查找当前目录下,最近24-48小时修改过的常规文件。
find . -type f -mtime 1
查找当前目录下,最近1天前修改过的常规文件。
find . -type f -mtime +1
来自:http://goodboy.sinaapp.com/?p=118
SPL里有好多好的东西,但用的人相对较少甚至都想不起来,我在一个ko里就看到一个,offsetSet示例:
代码:

-----------------------------------------------------------------------------------------------------------------------------------------
该SPL函数介绍:
  /**
   * Sets the value at the specified index to newval
   * @link http://www.php.net/manual/en/arrayobject.offsetset.php
   * @param index mixed <p>
   * The index being set.
   * </p>
   * @param newval mixed <p>
   * The new value for the index.
   * </p>
   * @return void
   */
  public function offsetSet ($index, $newval) {}


做下实际的相关SPL函数的测试,也就是相当于可以对一个对象进行添加属性,如类变量,数组等,同时提供相关的操作函数像操作数组一样对类对象进行操作里面的变量,带来了相当方便和灵活性,实践如下:


offsetSet相关函数:
http://www.ruanyifeng.com/blog/2008/07/php_spl_notes.html
更加有助于理解的Url:
http://www.mjplay.com.cn/php/fun/arrayobject.offsetset.html
http://hi.baidu.com/gwsshoddxvcmnte/item/deecccdffb539d1420e2505a
关于SPL的更多笔记,这个百度空间的兄弟写得较多了,如下Url:
PHP SPL,遗落的宝石:http://hi.baidu.com/gwsshoddxvcmnte/item/288a08c477656203c610b25b
PHP SPL 笔记:http://hi.baidu.com/gwsshoddxvcmnte/item/df0239c554dcc52fe80f2e5a
PHP SPL 笔记2:http://hi.baidu.com/gwsshoddxvcmnte/item/deecccdffb539d1420e2505a
PHP SPL 笔记3:http://hi.baidu.com/gwsshoddxvcmnte/item/51d9eef4b33562e41a111f5a
PHP SPL 笔记4:http://hi.baidu.com/gwsshoddxvcmnte/item/039da3012f740e096d90485e
出现两个一样的,于是想了解HTTP_HOST 和 SERVER_NAME 的区别:
一:相同时满足以下三个条件:
1.服务器端口默认80
2.apache或nginx中ServerName设置正确
3.HTTP/1.1协议规范

二:不同点:
$_SERVER['HTTP_HOST']会根据客户端HTTP请求输出信息
$_SERVER['SERVER_NANE']会根据apache或nginx的配置文件中的ServerName值

当端口不为80时
$_SERVER['HTTP_HOST']输出中会带有端口号
$_SERVER['SERVER_NAME']只会直接输出ServerName的值

所以,应尽量使用$_SERVER["HTTP_HOST"],保险,可靠!

PHP中的SERVER预保留变量中HTTP_HOST 和 SERVER_NAME经常是一样的,原因是服务器使用的是默认的端口80,
HTTP_HOST将省略不显示,而HTTP服务的默认端口就是80,所以大多数情况下,HTTP_HOST都没有显示这个端口号。
而如果使用的是ssl链接,那么端口号将被显示出来。
如果你的程序中有设定端口的功能,则可以考虑使用SERVER_NAME ,否则,建议使用HTTP_HOST

来自:http://hi.baidu.com/dream_net/item/9a341555879c963795eb05b4
背景:在以前初始化一个数据库句柄:

为何都这样写单例模式?层层分析:
http://www.cnblogs.com/hongfei/archive/2012/07/07/2580994.html


——————————————————————————————————————
上面Url里提到各种调用调不了,出问题的一个小小总结如下,也有总结不对的,说是静态函数被类调用不需要执行析构函数是不对的,执行了,但没有创建对象是真:
在php中,访问类的方法/变量有两种方法:
1. 创建对象$object = new Class(),然后使用”->”调用:$object->attribute/function,前提是该变量/方法可访问。
2. 直接调用类方法/变量:class::attribute/function,无论是静态/非静态都可以。但是有前提条件:
A. 如果是变量,需要该变量可访问。
B. 如果是方法,除了该方法可访问外,还需要满足:
b1) 如果是静态方法,没有特殊条件;
b2) 如果是非静态方法,需要改方法中没有使用$this,即没有调用非静态的变量/方法,当然,调用静态的变量/方法没有问题。

然后我们再看一下使用$object->… 和使用class::… 都有什么区别:
1. 使用$object->… ,需要执行构造函数创建对象;
2. 使用class::… 调用静态方法/变量,不需要执行构造函数创建对象;
3. 使用class::… 调用非静态方法/变量,也不需要执行构造函数创建对象。

然后奇怪的地方就出来了,既然2和3都一样,那静态方法/变量存在还有什么意义呢?
差异还是显然存在的,如下:
1. 静态变量
静态成员只保留一个变量值,而这个变量值对所有的实例都是有效,也就是说,所有的实例共享这个成员。
2. 静态方法
静态方法可以直接使用class::… 来调用,而非静态方法需要满足一定限制条件才能使用class::.. 的方法调用,如之前所述

来自:http://www.jb51.net/article/29717.htm

这时我们不得不重新初始化一个数据库句柄,试想多个应用场景下,这样的代码是多么可怕啊?!

有些朋友或许会说,我也可以不这样做啊,我直接利用global关键字不就可以了吗?的确,global可以解决问题,也起到了单例模式的作用,但是 OOP中,我们拒绝这样来编写代码,因为global存在安全隐患,请参考相关书籍,同时单例模式恰恰是对全局变量的一种改进,避免了那些存储唯一实例的 全局变量污染命名空间
global $db;  //OOP中,我们不提倡这样编写代码
使用单例模式编码

如有的KO框架里写的读取配置文件:

阅读全文
如何选中整个行?
左键单击三次要选中的某一行,这样就选中整个行了。
阅读全文
http://levi.cg.am/?p=930

http://www.mb5u.com/biancheng/php/php_94026.html

http://www.phper.org.cn/?post=64

http://hi.baidu.com/seatle888/item/db73f4db0a084919d78ed099

http://justcoding.iteye.com/blog/602494
背景:php做cli模式(也就是后台终端运行时),通过ps aux|grep php时出现的都是如php的文件名的进程,于是在php5.5里加入了类似windows'下的服务名来进行标识。

PHP5.5新增cli_set_process_title/cli_get_process_title, 这样一来, 大家可以给后台运行脚本起一个有意义的名字了. https://wiki.php.net/rfc/cli_process_title
[易*]韩天峰(*********)  17:34:07
http://pecl.php.net/package/event
event扩展
[易*]韩天峰(*********)  17:51:42
http://pecl.php.net/package/AOP
PHP  AOP编程扩展
twinhuang-广平(*********)  17:56:11
aop还是挺不错的,可以做很多有趣的事
Jack-回忆未来(*********)  17:57:50
AOP是什么意思?
面向切面编程
maxiezhang-qz***(*********)  17:58:37
是指不改变原来程序结构,可以强势插入代码么?
令狐雨辰(*********) 2013/3/8 下午 18:22:15
https://github.com/AOP-PHP/AOP
就刚讨论的这个呀
PHP-干不明白(*********) 2013/3/8 下午 18:22:33
o
Sango(*********) 2013/3/8 下午 18:22:49
热部署真是个银弹啊
令狐雨辰(*********) 2013/3/8 下午 18:25:08
这个现在还有些BUG
https://github.com/AOP-PHP/AOP/issues
等个稳定版,直接用上。
Rango(*********) 2013/3/8 下午 18:25:15
统计执行时间也可以用AOP,before前记录一个时间,after再记录一个
令狐雨辰(*********) 2013/3/8 下午 18:25:50
嗯是的。总之确实是很有用。
Sango(*********) 2013/3/8 下午 18:22:00
在php热部署的能力下,加上xdebug,这玩意要逆天了
背景:一群里的兄弟说在Dreamweaver里能看到图片,但是放在smarty下的网站下就不行。
于是,我初步判断是根目录的图片路径不对造成的,如下CSS样式:

问题:
问大家个事啊,为什么按钮美化,<input name="add_msg_sub" type="button" value="" style="width:38px; height:17px; background-image:url(img/pub_sub.png);"/>  dw能看效果的,但是放在smarty下的网站下就不行。

原因:Dw里的页面是根据里面的模板Html的相对路径进行展示(包括浏览器直接打开这个Html页面),一旦引入了php的smarty模板后,访问这个页面是从view.php里进行的,配置如下:


所以,在访问这个模板对应的PHP时,其实就是相对于这个view.php的路径进行配置Html页面了,如上面的:
也是相对这个view.php的路径进行定义这个模板的路径的,为此得出,这个图片的路径之所以没有出现是因为路径不对,图片是放在templates目录下的,而这个同级的目录里有view.php,于是这个图片得加上templates才行,如下:templates/img/pub_sub.png ,这样就Ok了。
对于如果在templates里的最前面加上斜杠的呢?如:templates/img/pub_sub.png  ,这样的话有可能会出现问题,如我们的网站没有建立在根目录下的情况会出现下面的问题:
图片路径前面有斜杠(注意:网站localhost的根,不是当前文件作为根。):
background-image:url(/templates/img/pub_sub.png);
访问的是:
http://localhost/templates/img/pub_sub.png
斜线开头表示是从根目录开始。

图片路径前无斜杠(这个就对了):
background-image:url(templates/img/pub_sub.png);
访问的是:
http://localhost/study/templates/img/pub_sub.png
这才是正确的。
备注:一般一个网站的根下面就是应该放上template,下面放图片css等,所以,常常我们也是写成/templates/img/pub_sub.png的居多。
————————————Add Time:2014-07-04————————————————
用css里的图片作为相对路径的办法:
/data/htdocs/ishow_devel_static/css/title_css/green.css
想把这个路径的图给拿展示:
/data/htdocs/ishow_devel_static/css/shouye/titbggreen_140320.jpg
样式如下:
.moduleblack{background:url(../shouye/titbggreen_140320.jpg) repeat-x left top;}
上面使用了相对路径,So,相对路径好,可以任意挪动,都能访问。
———群里的兄弟补课学习———
假设一个文件的url是这样的:
http://xxx.com/index/a.html
在a.html中使用路径引用
/等同于http://xxx.com/    /是web虚拟目录的根
../等同于http://xxx.com/  ../是当前文件的上一级目录
./等同于http://xxx.com/index/   ./是当前文件目录
————————————————————————————
【活跃】[武汉]中庸
假设一个文件的url是这样的:
http://xxx.com/index/a.html
在a.html中使用路径引用
/等同于http://xxx.com/
../等同于http://xxx.com/
./等同于http://xxx.com/index/

【吐槽】[北京]向东-Jack 14/7/4 星期五 下午 05:41:14
中庸的示例挺靠谱的。

【吐槽】[北京]向东-Jack 14/7/4 星期五 下午 05:41:34
那css里的背景图片相对路径是相对调用的html来讲的么?
【活跃】[武汉]中庸
14/7/4 星期五 下午 05:42:00
/是web虚拟目录的根
./是当前文件目录
../是当前文件的上一级目录
理解了这个你自己再慢慢琢磨

[北京]向东-Jack(372647693)  17:41:14
中庸的示例挺靠谱的。
那css里的背景图片相对路径是相对调用的html来讲的么?
不一定,如果css和html同一个文件或者同一个目录,可以这么理解,如果css文件是单独的目录,那么就要以css文件所在的目录为基准
背景:一群里兄弟说一css样式问题,我帮他排查,把代码拿过来一看,出现如下:
Fatal error: Unknown: Failed opening required 'D:/wamp/www/study/www - 副本/view.php' (include_path='.;C:\php\pear') in Unknown on line 0

后来把副本的文件夹给去掉就好了,是中文文件夹出现的问题。
php文件和包含php文件的文件夹中文命名导致错误,对于大多数初学php的中国人来说,很容易用含有中文的字符命名php文件或包含php的文件夹
这时我们会的到如上错误提示。

同时,据php官方消息在php6中将支持中文的编码,希望学习php的朋友遇到类似错误时能很快反应过来自己使用的的文件命名可能包含中文哦!
这段时间在折腾些PHP中共享内存的方案。
提到PHP共享内存朋友们都说:怎么不用memcache呢?
之所以不用memcache主要有两方面原因:
1、从官方下载的都是源文件需要编译,觉得太麻烦了。
2、在单台服务器的情况下,memcache这种客户端/服务端模式共享内存方案速度较APC这种服务器直接操作内存慢。

Alternative PHP Cache(APC)是 PHP 的一个免费公开的优化代码缓存。它用来提供免费,公开并且强健的架构来缓存和优化 PHP 的中间代码。

APC是PECL(PHP Extension Community Library)扩展的一部份,未捆绑在PHP安装文件中。关于APC的安装,网上有很多讲安装配置的文章。
不过我安装时下载地址找了很久,该扩展的官方地址是http://pecl.php.net/package/APC,但这上面提供的都是未编译的文件。粗略看了下,在WIN32上编译PHP源码(查看)。

PECL fro Windows站点(http://pecl4win.php.net/)目前也暂时关闭了,后来发现原来PHP官方的这个页面提供下载编译了的APC。

安装很简单,修改php.ini文件,添加extension=php_apc.dll即可。

折腾了一番,下面是用APC共享内存时经常会用到的函数:

bool apc_add ( string $key , mixed $var [, int $ttl = 0 ] )
添加一组键值到内存中,如果$key已经存在则返回false。变量生存周期$ttl单位为秒。

bool apc_store ( string $key , mixed $var [, int $ttl = 0 ] )
添加一组键值到内存中,如果$key已经存在则覆盖。变量生存周期$ttl单位为秒。

mixed apc_exists ( mixed $keys )
检查内存中是否存在键$keys。

mixed apc_fetch ( mixed $key [, bool &$success ] )
从内存中取出键$key对应的值。

bool apc_delete ( string $key )
从内存中删除键名为$key的值。

更多函数请参考这里:http://cn.php.net/manual/en/book.apc.php


来源:http://i.80tvb.com/php-apc-memory/
      今天群里有人问关于生成唯一id的问题,有人说用uniqid来生成,但也有人说这个生成的id未必是唯一,尤其在高并发时,原文如下:
      项目是一个高并发的web项目,并且会有后台进程(pcntl并发),两者都会利用uniqid去生成唯一id,今天发现一个bug,在高并发情况下,uniqid可能产生重复输出

以下是测试代码:



测试方法: 命令行运行此程序,重定向输出到文件,然后利用下面程序检查重复:



解决方法: 我们现在是在uniqid后又加了rand(1, 10000),在1000并发,每进程10次uniqid的情况下,再没有产生重复。

来自:http://www.dewen.org/q/1425
超好的HTML解析工具PHP Simple HTML DOM Parser 中文手册
  采用PHP5+开发的一个简单的PHP HTML DOM分析,支持invalid HTML并提供非常简单的方式来操作HTML元素。在HMTL页面上查找标签所使用的语法与jQuery(一个轻量级,实用的javascript框架)相似。从页面中抽取内容只需要一行代码。
手册地址:http://www.kg-led.com/phpgrid/simplehtml/阅读全文
背景:zend studio 12.0.2 修复了一个12.0.1的:  Fixed problem with referenced variables marked as undefined,我都说好像有问题,刚开始还以为是破解得有问题呢。 AddTime:2015-4-5
zend studio 12.0.2 破解&keygen:
http://download.csdn.net/detail/wfstock/8418635


破解ZendStudio 10.1:
刚才装了个ZendStudio 10.1, 发现中文网络上没有可用的破解文件, 就来分享个



直接升级后,因为之前目录是12.0.1现在想修改一下发现报错:
提示:The Zend Studio executable launcher was unable to locate its companion shared library.
打开:ZendStudio.ini 修改下12.0.1指向:12.0.2

D:\Program Files\Zend\Zend Studio 12.0.2\plugins\org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
--launcher.library
D:\Program Files\Zend\Zend Studio 12.0.2\plugins\org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20140603-1326

修改后就打开了,再就是打开后把工作空间切换一下即可:
D:\Program Files\Zend\Zend Studio 12.0.1\workspaces\DefaultWorkspace
D:\Program Files\Zend\Zend Studio 12.0.2\workspaces\DefaultWorkspace

破解文件的网盘地址:
http://pan.baidu.com/share/link?shareid=3381476648&uk=1342500274

解压缩后有俩jar文件, 一个是放在/zendstudio_install_path/plugins目录下用于覆盖同名文件的jar,
一个是用来运行的keygen.jar,  java -jar keygen.jar即可执行

来自:http://blog.suchasplus.com/mt/mt-search.cgi?blog_id=3&tag=zendstudio&limit=20

!!!特别注意:
上述实践都还Ok,特别注意的是,前晚别汉化,汉化后就玩完了,要输入注册码,还好我已经习惯了。
---------------------------------------------------------------------------------------------------------------------------------------
Last update:
http://www.geekso.com/component/zendstudio-downloads/
这儿提供的那个jar包好实践是可以安装那个jquery插件的,汉化也是没有问题的,所以,还是用它吧。:-)

Zend Studio 12.0.1 汉化
1.Help->Install New Software
2.在Work with框中复制此地址:http://download.eclipse.org/technology/babel/update-site/R0.12.1/juno/
3.复制完地址后按回车键确认,这时会提示pending...(等待...),等侍完成后会出来很多语言列表让你选择,
4.请选择“Babel Language Packs in Chinese(Simplified)”简体中文包选择项,下一步,再同意,就自动安装了,安装完以后会重启

上面划R0.12.1的版本后有变,获取方式:
进入http://www.eclipse.org/babel/downloads.php,看看语言包更新到哪个版本了,把删除线部分的版本号改成当前版本号就OK了
---------------------------------------------------------------------------------------------------------------------------------------

zend studio 9.0.1换行格式由windows的换行符设置为UNIX下的换行符,zend studio 9.0.1 如何取消显示换行符和空格符,:
http://www.jackxiang.com/post/4897/
此次补充如下:
Zend studio 10.0果然好了不少,主要是快了,尽管用了教旧的Eclipse:
此次正式版比上一版的测试版的性能要好很多,主要是因为测试版用的是最新的Eclipse 4.2.1(新版本Eclipse性能确实不怎么样),而正式版放弃了最新的Eclipse,而使用了Eclipse 3.8.1 juno版,性能大大提升,推荐升级此版本。
0.代码颜色之eot设置:
Window->Preferences->PHP->Editor->Syntax Coloring
注释  HereDoc  #FF4400  255,68,0  这个就是eot的颜色,如:
$elements['mainpage']=<<<eot

eot;

1.汉化:
zend studio 10汉化Url:(刚出来的最新版)
http://archive.eclipse.org/technology/babel/update-site/R0.10.0/helios/
zend studio 12.5.1 汉化 -
http://download.eclipse.org/technology/babel/update-site/R0.12.1/juno/
------------------------------------------------------------------------------------------------------------------------------
Zend Studio10.1出现Call to undefined function
如果你在用 Zend Studio 编写 PHP 项目时发现调用系统函数时调试正常, 但是在编写代码时却提示函数未定义”Call to undefined function ‘xxx’”, 在左侧语法检测状态区域栏总是显示个小黄色的三角形的感叹号, 实在是看着扎眼.

解决办法:
1, 修改项目 .buildpath 文件(不用)
2, 重置项目编译状态
Project -> Clean -> Clean all projects
3, 重新编译项目
Project -> Build All
4, 完成! 再看看是不是小黄色的感冒号图标消失啦~
------------------------------------------------------------------------------------------------------------------------------

2.字体及样式:
    1)字体:
 没想到zend studio 9中对中文显示不太好看,似乎有点小了。修改如下:打开Window->Preferences->General->Appearance->Colors and Fonts,找到Basic->Text Font,如果想用系统默认字体,就点Use System Font,我知道你似乎也不太愿意用系统默认字体,那就点Edit选择你想要的字体吧。

  这时win7用户可能会出现一种情况(XP不知道,其他系统也不清楚),发现字体列表里,没自己想要的字体,明明系统中有N多字体,这里才显示了一小部分。遇到这种情况可以点“显示更多字体”,会打开系统字体文件夹,找到你想要的字体,应该是隐藏属性,然后就 右键->显示,就OK了。选择后点 确定->apply->OK就可以了。

  本人比较喜欢Courier New字体作为代码编辑字体:
      Eclipse设置Courier New字体,这种情况基本上都发生在win7下面,解决的办法很简单:
Preferences-〉general-〉Appearance->Colors and Fonts
改成 Courier New 10号就行了
过去我还用过Courier / Courier New ,也挺不错。但是不知道为什么,现在在win7上的SecureCRT中找不到这两种字体了:
如果你在列表里看不到 Courier New ,就到控制面板->字体,找到Courier New,右键,显示。
然后回到eclipse关掉字体列表重新打开。就能在列表里看到 Courier New 了。
    2)样式:
  目前感觉zend studio自带的PHP代码着色方案不是很好,特别是关键字没有高亮,修改方法也很简单。Window->Preferences->PHP->Editor->Syntax Coloring。修改对应的颜色就可以了。下面提供一套仿dreamweaver的着色方案,仅供参考。

中文  英文  HEX  RGB
变量            Variable  #0066FF  0,102,255
字符串  String  #CC0000  0,12,0
常数/内部常数  constants/internal constants  #552200  85,34,0
数字  Number  #FF0000  255,0,0
保留关键字  Keyword  #006600  0,102,0
块分隔符  PHP tags  #FF0000  255,0,0
注释  PHPDoc comment  #FF9900  255,135,0
注释  PHPDoc  #FF4400  255,68,0
单/多行注释  Single/Multi-line comment  #FF9900  255,135,0

3.PHP里的tab转为4空格设定,修改Zend Studio的tab键为4个space:
然后依次找到PHP – Code Style – Formatter,Edit里有一个Indentation Tab Policy:Space ,Indentation Size:4.
PHP Conventions Jack[built-in]
修改Zend Studio的tab键为4个space
Window->preferences->PHP->Code Style->Formatter->右边show按钮->spaces->4,改好好随便起一个名字就可以了。
JS的也可以一样修改,位置:
Window->preferences->JavaScript->Code Style->Formatter->右边show按钮->spaces->4,改好好随便起一个名字就可以了。
后记,PHP和JavaScript的tab转code最快找到方法是搜索:Window->preferences里输入tab,这样容易找到各种tab相关设置。
4.高亮:
窗口(windows) -> 首选项(preferences) -> 常规(general) -> 外观(apprearcn) -> 颜色和字体(color and font) -> 基本 -> 文本字体(text font)

5.折叠:
   ctrl + / [小键盘的斜杠,如是笔记本就不行了,那个斜杠是用来做注释的]。
解决办法:
Window -> Preferences -> General -> Appearance -> Colors and Fonts -> Basic -> Text Font -> Change
选择 BitStream Vera Sans Mono (其他几个BitStream的字体应该也可以)
代码默认不折叠的设置:
进入window菜单->preferences,在左边找到PHP项,然后找到Editor->Code Folding,里面有Enable folding的选项,去掉就可以了。
注意:如果左边选的是General,则在Editor的Stuctured Text Editors中也有Enable folding的选项。不过实验证明这个选项不能控制打开时代码的折叠,只对当前编辑的有效。

杂七杂八:
1)高亮:
  安装Aptana3中高亮显示相同变量(实践OK),这个经过上面的模拟Dreamweaver样式修改后不用了。
Window -> preferences -> Aptana Studio -> Editors -> PHP
选中 Mark occurrences with background color 其中选项 Global variables 就是高亮显示相同变量
==================================================================
我的实践: PHP->editor-> Mark occurrences with
==================================================================

2)背景颜色修改:
   在编辑框上右击——preferences(首选项)—— General(普通)——Editors(编辑器)——Text Editors(文本编辑器);在Appearance color options (颜色选项)中选择Background color(背景颜色),再点击右侧的color选取颜色即可。——apply(提交)——OK(好)。
注: 中文可能翻译部太正确,自己琢磨下!
==================================================================
我的实践:preferences(首选项)—— General(普通)——Editors(编辑器)——Text Editors(文本编辑器);在Appearance color options (颜色选项)中选择Background color(背景颜色),再点击右侧的color选取颜色即可。
==================================================================

3)折叠功能:
Zend Studio中的代码折叠设置
    用Zend Studio打开PHP代码,默认是代码折叠的,如果需要展开,可以按ctrl+/来打开,注意,这个/是数字小键盘左上角的/。不过,我用的是笔记本电脑,如果要切换到小键盘就比较麻烦。所以如果能在打开文件的时候就自动展开,不自动折叠代码,就好了,具体的方法如下:
    进入window菜单->preferences,在左边找到PHP项,然后找到Editor->Code Folding,里面有Enable folding的选项,去掉就可以了。
    注意,如果左边选的是General,则在Editor的Stuctured Text Editors中也有Enable folding的选项。不过实验证明这个选项不能控制打开时代码的折叠,只对当前编辑的有效。
我的实践: PHP->editor-> code folding 勾选下面的:initially fold these elements:Phpfunction

4)显示空格和换行符号,显示打印页边距,及换行空格符号可见,显示代码的最大字数,查找作用域的颜色等设置,打印长度竖线宽度设定,及换行等:
首先,在Zend Studio中,Windows ->preferences->General->Editors->Text Editors的show print margin中,可以设置在多个个字符处显示一根绿色的竖线,提醒你此处就是你所设置的最大字数.
接着,在Windows ->preferences->PHP->Code Style->Formatter->Edit->Line Wrapping中,可以设置在编写类的定义,方法的定义,调用方法,表达式时自动进行换行.记得勾选上"Force split".
需要注意的是, 在定义字符串的时候,在一行达到最大字数时不会自动分行,需要自己手动分行,这就是第一步设置显示绿线的用处.



在Zend Studio 10的Outline中使用的图形标志:http://old.uplook.cn/index.php?a=index&m=Index&c=show&id=228514&
在Zend Studio 9中,如果打开Outline View,可以看到当前浏览的文件中对各种元素的图形标志.这些标志方式在其它一些View中当然也是可以看到的.这里记录下,主要是PHP源码文件.
1.图形主体
绿色空心圆: public field
黄色空心菱形: protected field
红色空心方块: private field
绿色实心圆: public method
黄色实心菱形: protected method
红色实心方块: private method
2.图形附加符号
右上角:
'S': 具有static修饰符
'C': 这是一个构造方法
'F': 这是一个常量
'A': 具有abstract修改符
右下角:
绿色实心三角形: 此方法对父类方法进行了overriding
PHP版本:
PHP 5.4.4-12 (cli) (built: Feb  1 2013 08:58:27)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
    with Xdebug v2.2.1, Copyright (c) 2002-2012, by Derick Rethans
在多串口用Select读取时,PHP出现:
PHP Strict standards:  Only variables should be passed by reference in /root/dev_Codes_All/phpComSelect/fopenSelectWithRaspberry.php on line 49
PHP Stack trace:
PHP   1. {main}() /root/dev_Codes_All/phpComSelect/fopenSelectWithRaspberry.php:0

实践下面Ok,能去掉提示:
PHP Strict Standards: Non-static method错误的解决方法
在程序添加了error_reporting(E_ERROR | E_WARNING | E_PARSE)后解决问题!

来源:http://www.glblog.net/?post=178
树莓派在运行命令行出出现如下错误:


可以通过以下命令解决,关闭方法:

其实前面在windows7下安Lamp也出现过,当时的记录:http://jackxiang.com/post/5919/
阅读全文
分页: 15/24 第一页 上页 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 下页 最后页 [ 显示模式: 摘要 | 列表 ]