‘ Web开发 ’ 的存档; 分类
1. sys_getloadavg() sys_getloadavt()可以获得系统负载情况。该函数返回一个包含三个元素的数组,每个元素分别代表系统再过去的1、5和15分钟内的平均负载。 与其让服务器因高负载宕掉,不如在系统负载很高时主动die掉一个脚本,sys_getloadavg()就是用来帮你实现这个功能的。 不过很遗憾,该函数在windows下无效。 2. pack() Pack()能将md5()返回的32位16进制字符串转换为16位的二进制字符串,可以节省存储空间。 3. cal_days_in_month() cal_days_in_month()能够返回指定月份共有多少天。 4. _() WordPress开发者经常能见到这个函数,还有_e()。这两个函数功能相同,与gettext()函数结合使用,能实现网站的多语言化。具体可参见PHP手册的相关部分介绍。 5. get_browser() 在发送页面前先看看用户的浏览器都能做些什么是不是挺好?get_browser()能获得用户的浏览器类型,以及浏览器支持的功能,不过首先你需要一个php_browscap.ini文件,用来给函数做参考文件。 要注意,该函数对浏览器功能的判断是基于该类浏览器的一般特性的。例如,如果用户关闭了浏览器对JavaScript的支持,函数无法得知这一点。但是在判断浏览器类型和OS平台方面,该函数还是很准确的。 6. debug_print_backtrace() 这是一个调试用的函数,能帮助你发现代码中的逻辑错误。要理解这个函数,还是直接看个例子吧: $a = 0; function iterate() { global $a; if( $a < 10 ) recur(); echo $a . “, “; } function recur() { global $a; $a++; // how did I get here? echo “\n\n\n”; debug_print_backtrace(); if( $a < 10 ) iterate(); } iterate(); # OUTPUT: #0 recur() called at [C:\htdocs\php_stuff\index.php:8] #1 iterate() called at [C:\htdocs\php_stuff\index.php:25] #0 recur() called at [C:\htdocs\php_stuff\index.php:8] #1 iterate() called at [C:\htdocs\php_stuff\index.php:21] #2 recur() called at [C:\htdocs\php_stuff\index.php:8] #3 [ 阅读全文]
mail()这个函数不是拿来就能用的,你需要再php.ini中做一些配置。一种方法是使用外部smtp邮件服务器;另一种方法是在本地配置一个邮件服务器。本文介绍如何利用hMailServer软件在本地配置邮件服务器。 hMailServer是一个邮件服务器软件,首先你需要下载并安装它,去这里下载,我下的是5.2版。安装的时候会提示你设置你的邮件服务器密码,记得保存好这个密码。启动hMailServer,输入密码,现在做一些简单的设置,直接照着图做就行了(点小图看大图),稍后解释这么做的目的。 第一步指定本地服务器名localhost,这个没什么好说。 第二步,在”Advanced>>IP Range>>My Computer”里,把POP3和IMAP前面的勾去掉,因为我们并不想用这个服务器收信,也不打算用IMAP协议;把所有的“Require SMTP authentication”选项都去掉是帮PHP扫清发信的障碍。 第三步,在”Advanced>>IP Range>>Internet”中,把SMTP, POP3, IMAP全部去掉,因为我们不想外人使用我们的邮件服务器;同时把“Require SMTP authentication”以加强安全性。 现在本地邮件发送服务器就配置完毕了。最后不要忘记在php.ini中确保以下部分没有被注释掉: [mail function] ; For Win32 only. smtp = localhost smtp_port = 25 ; For Win32 only. sendmail_from = user@yourdomail.com sendmail_from虽然可以不用设置,但是为了以防万一,最好设置一个默认值。 现在你就可以在本地自由的使用mail()函数了。但是不要乱发垃圾邮件哦! [ 阅读全文]
ChkVersion是一个面向web专业人员及建站爱好者的工具站点,你可以在这里订阅你正在使用的或是喜欢的建站程序,ChkVersion会定时检查数据库里已有程序的最新版本,每当你订阅的程序有所更新时,会向你的邮箱发送提醒邮件。 你可以针对不同的程序进行单独订阅(图1,图2),也可以在多选后选择合并订阅(图3,图4)。此外,你也可以订阅ChkVersion的RSS Feed来关注所有程序的更新情况。 图1——单独订阅——1:点击“订阅更新” 如果你发现ChkVersion还没有收录你正在使用的或是喜欢的建站程序,可以进行程序提交(图5,图6)。 无论进行订阅还是提交程序,都无需注册,且完全免费;如果你有任何关于ChkVersion的意见、建议或问题,请发送邮件至admin#chkversion.com。(#替换为@) 感谢你使用ChkVersion。 ChkVersion由Ven和Viiiix合力设计开发。 以上是“关于ChkVersion”,已经被写在这里了。 ChkVersion源于Viiiix的一个抱怨,他总是搞不清Joomla!什么时候就发布新版本了,于是想弄个小工具能及时提醒自己关注的建站程序的版本更新情况;他的想法和Ven一拍即合,于是就有了ChkVersion的idea雏形。 接下来,Viiiix和Ven一边对想法进行补完,一边着手开发。Viiiix承担了网站中几乎全部的前端设计开发的工作,而Ven则完成了后端程序脚本的编写。经过了一个多月的开发、测试和程序资料的收集,ChkVersion现在已经基本有样子了,可以见人了。于是ChkVersion就被发布出来了。接下来,Viiiix和Ven会继续扩充ChkVersion中的程序收录数量,同时增加新的功能与特性。 感谢使用ChkVersion,希望这个小工具对你有用。 最后,感谢Ray和王二在这个小工具开发阶段给于的关注和帮助。 [ 阅读全文]
首先我承认我有点标题党了,然后: 近日Google 在 Google Code 下的 “Let’s make the web faster” 网站中,发表了一篇名为“PHP performance tips”的文章,介绍了一些php性能优化建议,其中: 不要随意复制变量 用单引号表示字符串 使用echo输出字符串 不要在echo中使用点号连接符 使用switch/case代替if/else 这篇文章发表后没多久就立刻遭到了一些PHP社区和个人无情的批驳,他们声称Google错了,错的很彻底,这5条看似有效优化建议其实完全是迷信: 1. 不要随意复制变量 Zend引擎采用了“写时复制”机制,这意味着无论你对变量进行多少次复制,真正的复制动作都仅在变量值改变时才发生。 2. 用单引号表示字符串 无数的基准测试已经证明,使用双引号表示纯字符串并不比使用单引号时慢。有兴趣的朋友也可以重复一下这个测试: php > $blah=”blah”; $s=microtime(true); for($i=0;$i<100000;$i++) “omgwtf$blah\n”; echo microtime(true)-$s; 0.044615983963013 php > $blah=”blah”; $s=microtime(true); for($i=0;$i<100000;$i++) ‘omgwtf’.$blah.”\n”; echo microtime(true)-$s; 0.042807102203369 3. 使用echo输出字符串 根据php所在服务器环境的不同,某些情况下echo会比print()慢。这里有一篇echo和print()对比的帖子,对echo和print()的速度进行了测试:http://www.learnphponline.com/php-basics/php-echo-vs-print 4. 不要在echo中使用点号连接符 基准测试证明这又是一条与事实完全相反的建议。php引擎处理以点号连接(或者使用双引号)传递给echo的变量实际上是更快的。你可以重复这个测试: $ php -d implicit_flush=off -r ‘$s=microtime(true); for($i=0;$i<100000;$i++) echo “omgwtf”,”bbq”,”\n”; echo microtime(true)-$s;’ | tail -n 1 1.071463108062710 $ php -d implicit_flush=off -r ‘$s=microtime(true); for($i=0;$i<100000;$i++) echo “omgwtf”.”bbq”.”\n”; echo microtime(true)-$s;’ [ 阅读全文]
或许你会有直接在网页上显示psd文件的需要,那么classPhpPsdReader.php能帮助你。这是一个由Tim de Koning在2007年编写的一个基于GD库的PHP类,能够用PHP对图片进行一些操作,包括显示psd文件。这个类兼容PHP4和PHP5,可以放心使用。 使用方法也很简单,上传classPhpPsdReader.php,然后: <?php // 发送header header("Content-type: image/jpeg"); // 包含类文件 include_once('classPhpPsdReader.php'); // 显示psd文件 imagejpeg(imagecreatefrompsd('yourPsdFile.psd')); ?> 就这么简单。 下载classPhpPsdReader.php [ 阅读全文]