March 27, 2010
PHP安全配置详解
"PHP勿庸置疑是非常强大的服务器端脚本语言,但是强大的功能总是伴随着重大的危险, 在这章里,你将学习到使用PHP的安全模式来阻止一些PHP潜在的危险因素。 【 安全模式 】\nPHP的安全模式提供一个基本安全的共享环境,在一个有多个用户帐户存在的PHP开放的Web服务器上。当一个Web服务器上运行的PHP打开了安全模 式,那么一些函数将被完全的禁止,并且会限制一些可用的功能。\n[ 使用安全模式来强制限制 ] 在安全模式下,一些尝试访问文 件系统的函数功能将被限制。运行Web服务器用户ID,如果想要操作某个文件,则必须拥有该文件读取或者写入的访问权限,实现这个限制功能对于PHP来说 是没有问题的。\n在 安全模式开启的时候,尝试读取或者写入一个本地文件的时候,PHP将检查当前访问用户是否是该目标文件的所有者。如 果不是所有者,则该操作会被禁止。(写 入权限:在较低级别的文件访问权限下,可能会允许读取或者写入系统操作系统的文件,通过PHP的安全模式实现了防止你操作 另外一个用户文件的操作。当然, 一个Web服务器可能能够访问一个具有全局写入权限的任意文件。)\n当安全模式打开的时候,以下函数列 …"
March 26, 2010
PHP中echo和print的区别
"PHP 和 HTML 最简单的交互是通过 print 和 echo 语句来实现的,在实际使用中, print 和 echo 两者的功能几 乎是完全一样。可以这么说,凡是有一个可以使用的地方,另一个也可以使用。但是,两者之间也还是一个非常重要的区别:在 echo 函数中,可以同时输出 多个字符串,而在 print 函数中则只可以同时输出一个字符串。同时,echo函数并不需要圆括号,所以echo函数更像是语句而不像是函数。\necho 和 print 都不是函数,而是语言结构,所以圆括号都不是必需的。\necho命令和print命令相同,没有区别 ; echo函数和print函数有区别; print()有返 回值,当其执行失败(比如断线)时返回flase; printf()和sprintf()类似,均为格式化输出,不同的是前者输出到 标准输出,后者输出到变量。\n他们的区别在于: (1) echo可以输出多个字符串,像下面这样: echo ‘a’,’b’,’c’; 如果你非要加上圆括号,注意写成echo (‘a’,’b’,’c’);是错误的,应该写成: echo …"
March 26, 2010
windows下安装 Xdebug+WinCacheGrind
"以PHP5.1.4,Windows平台为例(其它PHP版本,其它平台请参看官网文档): 1. 在 http://www.xdebug.org/download.php 下载适合自己php版本的php_xdebug- 2.0.1-5.1.2.dll【有附件提供下载,如果按照以下步骤完成后 phpinfo任无法显示xdebug,那么建议重新下载其他xdebug.dll文件试试 】; 2. 将下载的xdebug.dll放到php\\ext目录里,可以重命名也可以不重命名,这里我没有重命名。 3. 编辑php.ini,加入下面几行:\nextension=php_xdebug-2.0.1-5.1.2.dll\n;xdebug配置 [Xdebug] ;开启自动跟踪 xdebug.auto_trace = On ;开启异常跟踪 xdebug.show_exception_trace = On ;开启远程调试自动启动 xdebug.remote_autostart = On ;开启远程调试 xdebug.remote_enable = On ;收集变量 xdebug.collect_vars = On ; …"
March 26, 2010
启用Xdebug使用WinCacheGrind分析脚本执行时间
"使用Xdebug调试和优化PHP程序系列教程之WinCacheGrind,教你如何利用Xdebug 配合WinCacheGrind工具来检测PHP代码的效率以及分析PHP代码。\n另外还有一个结果分析展示工具webgrind。可参考: http://blog.sina.com.cn/s/blog_635833b3010127q5.html\n有时候代码没有明显的编写错误,没有显示任何错误信息(如 error、warning、notice等),但是这不表明代码就是正确无误的。有时候可能某段代码执行时间过长,占用内存过多以致于影响整个系统的效 率,我们没有办法直接看出来是哪部份代码出了问题。这时候我们希望把代码的每个阶段的运行情况都监控起来,写到日志文件中去,运行一段时间后再进行分析, 找到问题所在。\n回忆一下,之前我们编辑php.ini文件 加入\n[Xdebug]\u0026lt;br /\u0026gt; xdebug.profiler_enable=on\u0026lt;br /\u0026gt; xdebug.trace_output_dir=\u0026quot;I:\\Projects\\xdebug\u0026quot;\u0026lt;br …"
March 26, 2010
mysql显示SQL语句执行时间
"查看 MySQL 語法 詳細執行時間 與 CPU/記憶體使用量: MySQL Query Profiler\nMySQL 的 SQL 語法調整主要都是使用 EXPLAIN , 但是這個並沒辦法知道詳細的 Ram(Memory)/CPU 等使用量.\n於 MySQL 5.0.37 以上開始支援 MySQL Query Profiler, 可以查詢到此 SQL 會執行多少時間, 並看出 CPU/Memory 使用量, 執行過程中 System lock, Table lock 花多少時間等等.\nMySQL Query Profile 詳細介紹可見: Using the New MySQL Query Profiler (2007.04.05 發表)\n效能分析主要分下述三種(轉載自上篇):\nBottleneck analysis – focuses on answering the questions: What is my database server waiting on; what is a user connection waiting on; what is a piece of …"
March 26, 2010
PHP中如何使用header发送头部信息
"在照彭武兴先生的《PHP BIBLE》中所述,header可以送出Status标头,如\n就可以让用户浏览器出现文件找不到的404错误,但是我试了这样是不行的。\n后 来我到w3.org上查了http的相关资料,终于试出来了如何Header出状态代码(Status),与大家分享。\n其实应该是这样 的:\n第一部分为 HTTP协议的版本(HTTP-Version)\n第二部分为状态代码(Status)\n第三部分为原因短语 (Reason-Phrase)\n三部分中间用一个空格分开,且中间不能有回车,第一部分和第二部分是必需的,第三部分则是给人看的,可 写可不写甚至乱写。\n还有,这一句的输出必须在Html文件的第一行。\n下面我给出各代码所代表的意思(是从 w3.org上查到的,够权威了):\n1xx: Informational – Request received, continuing process\n2xx: Success – The action was successfully received, understood,and accepted\n3xx: Redirection – …"
March 23, 2010
把不带前缀的域名转向到www.域名的Apache 301转向配置样例
"各种不同的域名地址对于搜索引擎的除重(deduplication)来说是一个负担,有没有”/”和首页的文件连接,一个域名首页就可以有6个地址:\nwww.haohtml.com/\nhaohtml.com/\nwww.haohtml.com\nhaohtml.com\nwww.haohtml.com/index.php\nhaohtml.com/index.php\n如果加上一些参数,比如用于来源跟踪等还会有更多无穷无尽的地址。\nwww.haohtml.com/?source=foobar\n所以搜索引擎鼓励发布者 把URL标准化(归一化)。首先就是域名的归一化,原先我的设置为: www.haohtml.com / haohtml.com为别名。现在改为haohtml.com 301转向到www.haohtml.com\nServerName haohtml.com\nRewriteEngine on\nRewriteRule ^(.*)$ http://www.haohtml.com$1 [R=301,L]\n如果没有mod_rewrite也可以设置mod_alias:\nRedirectMatch 301 …"
March 17, 2010
windows 2003自带的FTP的设置?
"windows 2003自带的FTP(iis里)如何设置?打开 Internet信息服务(IIS)管理器 (如下图)\n[][1]\n可以看到 Internet信息服务(IIS)管理器 中已经出现了 FTP站点 菜单(如下图)\n[][2]\n单击 FTP站点 ,右边呈现的是 相关数据和参数(如下图)\n[][3]\n接着,我们来打开它的属性栏 ,右键单击它,单击属性(如下图)\n[][4]\n选项卡 FTP站点 下,列出来相关参数,默认的FTP的TCP连接端口是21,这个一般不改它(如下图)\n[][5]\n单击 安全账户 选项卡,下面可以勾选匿名,也可以添加用户账号,我们这里只是演示,所以不改它(如下图)\n[][6]\n接下来,单击 主目录 设置修改我们这个ftp的指向访问目录,我们这里指向 F盘(如下图)\n[][7]\n选择后,再单击下一步(N)\u0026gt; (如下图)\n[][8]\n设置访问权限,读取 就是只能看里面内容,能下载,但不能上传;写入,就是可以看,下载,还有上传(如下图)\n[][9]\n在你的电脑上打开FTP客户端软件,输入IP,您windows远程桌面的用户名和密码,就可以登录FTP了。 "
March 16, 2010
用show table satus查看数据库表的相关信息
"显然,我之前那个数据库备份程序太菜鸟了。还用select count(*) 来判断数据库的记录集数,其实完全不用那么麻烦。有一个简单的MML语句今天被我无意间发 现,”SHOW TABLE STATUS FROM `dbname`”,执行后会生成一个记录集。\n记录集包含下列字段:\nName: newdb (表名) Engine: MyISAM (表引擎) Version: 10 (版本) Row_format: Dynamic (行格式)\nRows: 56496 (表内总行数) 对于其它存储引擎,比如InnoDB,本值是一个大约的数,与实际值相差可达40到50%。 在这些情况下,使用SELECT COUNT(*)来获得准确的数目。对于在INFORMATION_SCHEMA数 据库中的表,Rows值为NULL\nAvg_row_length: 4749 (平均每行大小,这里是4.7K) Data_length: 268352680 (该表总大小,单位字节) Max_data_length: 281474976710655 (该表可存储上限,这个值所有表都一样,换算出来是256TB,应该用不 …"
January 31, 2010
One Number:同时监测 Gmail, Reader, Wave 和 Voice 的 Chrome 扩展
"我相信作为Google的忠实用户,各位的 Chrome 上一定安装了若干的Google服务提醒扩展吧:比如 Gmail的, Google Reader的, Google Wave的, Google Voice的。。。那么多图标堆在工具栏,看着就头大。。。\nOne Number 这个扩展正是为了解决这个问题而来,从此我们只需要一个图标就可以查看四个Google服务的未读信息数目了。安装这个扩展后,点击扩展图标跳转到Google输入Google账户用户名和密码即可启用。监视的服务列表,检查频度,未读数显示颜色等等也都可以在扩展的设置中自己设定,相当的方便。另外,One Number的 Gmail 提醒也支持使用Google Apps的邮件监视。\n点击这里 进入One Number在官方Chrome扩展中心的页面,点击INSTALL安装。"