Categories
common

新增域名ooso.net

今天ooso.net正式生效,可以同时使用www.ooso.net,www.ooso.net,ooso.net来访问本站。

Categories
php

更好的将editplus与phpCodeBeautifier结合使用

phpCodeBeautifier这款php代码美化工具已经很久不见更新,它的命令行版本似乎有些bug,不能正确的将php代码弄的很整齐。但是phpCodeBeautifier的GUI版本还是能够执行正确无误的,可惜无法直接在命令行模式下打开某个文件,想与editplus结合使用比较困难。

但是注意到phpCodeBeautifier总是会打开上一次使用过的文件,打开phpCodeBeautifier.ini一看,LastFile=’******’不正是我们需要的东东么?

于是俺写了如下批处理文件搞定这个问题:

代码片段:


set phpcb_path="F:Program FilesphpCB
set phpcb_ini=%phpcb_path%phpCodeBeautifier.ini"
echo [Settings]        >%phpcb_ini%
echo LastFile=%1    >>%phpcb_ini%
echo [MainForm]        >>%phpcb_ini%
echo Left=-4        >>%phpcb_ini%
echo Width=1032        >>%phpcb_ini%
echo Top=-4        >>%phpcb_ini%
echo Height=748        >>%phpcb_ini%
echo [Options]        >>%phpcb_ini%
echo FileFormat=0    >>%phpcb_ini%
echo Settings=PEAR    >>%phpcb_ini%

%phpcb_path%phpCodeBeautifier.exe

在editplus的工具配置中调用以上批处理文件,参数为$(FilePath),一切搞定,可以用phpCodeBeautifier自动打开editplus当前编辑的文件:P

Categories
common

phpCodeBeautiful与editplus结合改进

有人提议使用phpCodeBeautiful的命令行,看这里:超链接地址http://club.phpe.net/index.php?act=ST&f=2&t=3701

在此基础上俺进行了修改,适合自己使用:

pcb.bat

代码片段:


set phpcb_path="F:Program FilesphpCB"
%phpcb_path%phpCB.exe -space-after-if -space-after-switch -space-after-while -space-before-start-angle-bracket -space-after-end-angle-bracket -glue-amperscore -change-shell-comment-to-double-slashes-comment -force-large-php-code-tag -force-true-false-null-contant-lowercase --comment-rendering-style PEAR -align-equal-statements-to-fixed-pos -indent-with-tab -optimize-eol -align-equal-statements --padding-char-count 1 %1 > %TEMP%phpcbTemp.php
move /Y %TEMP%phpcbTemp.php %1
Categories
common php

利用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@]

Categories
php

等待pear投票的模板程序HTML_Template_Savant

在zend.com上看到这个模板程序,咋一看结构代码都很像smarttemplate,但是细看处理方法却是截然不同,模板程序中都是直接使用的php代码,如下面这段常见的循环显示代码:

< ?php foreach ($book as $key => $val): ?>
    
       < ?php echo $val[‘author’] ?>
       < ?php echo $val[‘title’] ?>
    
< ?php endforeach; ?>

我觉得用这种方式处理比较灵活,也还方便,而且并不需要生成cache之类的把戏,因为它本身已经是php程序了.加上方便的plugin和filter扩展,值得考虑,下面是这个模板的详细信息:

http://pear.php.net/pepr/pepr-proposal-show.php?id=83

Categories
php

为什么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,一切正常收工.

Categories
php

用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的解析时间,效率可能会更高.

Categories
php

Advanced PHP Resources

今天在网上游荡,无意间发现这个帖子,有种大清早在马路边拣到10块钱的感觉,与大家分享:

超链接地址Advanced PHP Resources

Categories
common

单子模式(SINGLETON)的简单实现

参考了超链接地址DevNet超链接地址Chinaunix.net 的讨论,用以下代码简单实现单子模式(SINGLETON):

代码片段:


<?php 
/**
*  Class: SingletonPool
*  Store multiple singletons (of different classes, naturally).
*
*/
class Singleton {

    
/**
    * 返回唯一对象,可保存多个对象
    *
    * @param (string) $class - the class name
    * @return object
    * @access public
    * @static
    */
    
function &getInstance($class) {
        static
$ob = array();

        if( !isset(
$ob[$class]) ) {
            
$ob[$class] = & new $class;
        }

        return
$ob[$class];
    }

}
?>
Categories
common

Apache的AddDefaultCharset

看了这篇文章:超链接地址配置 Apache 强行指定浏览器编码选择 ,俺也有些感想:

apache 2的配置文件中,AddDefaultCharset缺省是ISO-8859-1,所以很多人刚开始用的时候会把它改成GB2312,这样就可以避免乱码问题.

我也推荐人家用这个解决办法在一段时间里,直到有一次看到一个UTF-8编码的页面,始终是乱码,无可救药的乱码,任你如何调整浏览器的设置.无奈之下我把AddDefaultCharset那行整个屏蔽了,突然发现所有UTF-8页面恢复了正常,真的好神奇耶!!

从此,我深深的认识到:在AddDefaultCharset被屏蔽的情况下,页面的编码是由<meta>标记决定的.