为什么flush不生效?

老早就看了这篇文章:

超链接地址类似socket传输的flush()

非常简单的代码,却总是不能在我的服务器上正常运行,如下:

< ?php 
for($i = 1; $i <= 500; $i++)print ” “;  
  ob_implicit_flush();  
  for($j = 1; $j <= 30; $j++) {  
  echo $j.“
”; sleep(1); } ?>

百思不得其解,最后找到apache的httpd.conf配置文件,发觉压缩输出的选项deflate被打开,上面小程序一直要等待压缩完毕才会出现效果,实时输出的效果也就无法体现了.调整deflate压缩的范围,重启apache,一切正常收工.

利用xampp将apache和tomcat整合

xampp可以将apache+php+mysql+phpmyadmin一次性自动安装完成,很适合快速搭建测试服务器.它也提供了tomcat的插件,可以很快的搭建jsp开发环境.

以俺在winxp安装为例:
1.在http://www.apachefriends.org/en/xampp-windows.html下载XAMPP,推荐下载EXE (7-zip) 打包的xampp,这个个头比较小,部署的时候也比较灵活.
2.在同一页面下载tomcat插件,同样选择7-zip
3.解压xampp的压缩包到你指定的目录,例如d:xampp
4.运行setup_xampp.bat,至此,xampp安装完成
5.解压tomcat插件到xampp目录,运行setup_java.bat即可将tomcat插件安装完毕

现在一个php+jsp的快速开发环境已经搭建好了.

附上tomcat的配置(详细信息见Readme):
Tomcat Server Home = .xampptomcat
Tomcat URL = http://localhost:8080
Tomcat Doc Root = .xampptomcatwebapps

JSP example Root = .xampptomcatwebappsjsp-examples
JSP example URL = http://localhost/jsp-examples/

Servlets example Root = .xampptomcatwebappsservlets-examples
Servlets example URL = http://localhost/servlets-examples/

Mod_jk java Root = .xampptomcatweppappsjava
Mod_jk java URL = http://localhost/java/

倘若你想建立更多的映射,那么就需要自行修改.xamppapacheconfworkers2.properties文件

[@more@]

用php生成php脚本

看到这篇文章,很有趣:超链接地址Generating PHP with Ruby

下面是个用php生成php简单的例子:

< ?php
// Some code
$code = ‘
<?php
echo “Hello World!”;
?>
‘;

// Write code to file
file_put_contents(‘generated.php’,$code); # PHP5 function!

// Include the generated code for execution
include ‘generated.php’;
?>

为什么不直接使用eval呢?我的理解是,这样只需要将生成的代码包含进来直接运行便是,省去了eval的解析时间,效率可能会更高.

让editplus的Function list显示php5的函数

如果你开始使用php5了,而且正好又是editplus的忠实用户,一定会为editplus的function列表无法正确显示而烦恼.这时候,我们不能怨社会,php5新增的public,private,proctectd,static关键字才是罪恶的根源,function不再是function,而是public function….

当然,这一切不会难倒我们,editplus具有很好的可定制性,以下步骤可以轻松解决这个问题:

  • 打开tools->perferences->Files->Setting&syntax
  • 选择File types->PHP
  • 修改Function pattern
    ^[ t]*function[ t].*([^;]*$ 变成 ^[ t]*(function |public |protected |private |static).*([^;]*$
  • 点ok保存设置

好了,按下ctrl+F11,看看函数窗口,有没有显示出所有的函数呢?

[@more@]

中文pear

php的pear类库真是包罗万象,我时常想.

用过之后,我发觉自己是越来越懒惰了,没心思去写一些模块和function之类的.为什么不呀,人家pear不有现成的么??

为了强化记忆,与时俱进,加入中文pear部分,收罗中文的关于pear的文章.