Archive for 一月, 2007

PHP 网站所提供的 pecl-5.1.4-Win32.zip 中的 Java 扩展并不好用。不过要想在 PHP 5 中调用 Java 也不难。本文主要来讲解在 Windows 2003 上利用 IIS + PHP 5.1.4 来调用 Java,其它的 PHP 5 版本配置方法也是相同的,这里以 PHP 5.1.4 为例,仅是因为我的安装调试环境是这个。其它环境下的配置是类似的。

\r\n

首先,需要安装好 IIS + PHP 5.1.4,安装方法就不详细说明了。这里不需要安装 PECL 扩展,即使安装了也不要打开 PECL 的 Java 扩展,因为我们不用它,那是个过时的版本,根本不能用,但我不知道为什么 PHP 官方会提供这么一个根本不能用的东西。

\r\n

在你的网站下建一个 test.php,内容如下:

\r\n
\r\n
<?php
    
phpinfo();
?>
\r\n

如果你能在浏览器中打开它看到正确的 PHP 配置信息,就说明 PHP 没有问题了。接下来就可以搞 Java 了。说实话,接下来的内容我觉得比安装 Tomcat 发布一个 JSP 站点都要简单。

\r\n

首先下载并安装 J2SE(TM) Development Kit 5.0 Update 6,当然,下载安装 Java(TM) 2 SDK, Standard Edition 1.4.2_11 应该也可以,虽然我没有测试过。另外,你如果安装 J2EE 1.4 SDK 或者 Java EE 5 SDK 也是可以的。

\r\n

安装好之后,不需要什么配置(包括环境变量也不需要配置),除非你还需要做其它单独的 Java 开发。

\r\n

接下来,下载 Php/Java Bridge 这个项目,只下载 Binary 包就可以了,目前的版本是 php-java-bridge_3.0.8_j2ee.zip,下载之后解压缩,其中有一个 JavaBridge.war 文件,把它解开(提示:改名成 JavaBridge.jar 就可以用 WinRAR 解开了)。在解开后的 JavaBridge\\WEB-INF\\cgi 目录下,你会发现一个 java-x86-windows.dll 文件,在 JavaBridge\\WEB-INF\\lib 目录下,有一个 JavaBridge.jar 文件。把它们复制到 c:\\php\\ext 目录下(如果你的 PHP 5 是安装在 c:\\php 目录下,并且扩展是在 c:\\php\\ext 目录下的话)。你可以将 java-x86-windows.dll 改名成 php_java.dll,原来 PECL 中的 php_java.dll 和 php_java.jar 删掉就可以了,它们没有用。如果你觉得这个过程很麻烦,直接从本站下载 php_java.zip 并解压缩到 c:\\php\\ext 目录下就可以了,这个包里已经包含了这两个文件,并且已经改了名。

\r\n

然后编辑 php.ini 文件,在其中加入:

\r\n
\r\n
extension=php_java.dll
 
[Java]
java.class.path = \”C:\\php\\ext\\JavaBridge.jar\”
java.java_home = \”C:\\Program Files\\Java\\jdk1.5.0_06\”
java.library.path = \”c:\\php\\ext\”
\r\n

然后重新启动 IIS 后,在浏览器中打开上面的 test.php 测试页面,如果看到下面的内容:

则说明配置成功了!

\r\n

现在你就可以在 PHP 中直接创建 Java 对象,并且使用它来编写程序了。例如(下面的程序来自 PHP 手册 CVII. PHP / Java Integration 一节):

\r\n
\r\n
<?php
header(\”content-type:text/html; charset=utf-8\”);
// get instance of Java class java.lang.System in PHP
$system = new Java(\’java.lang.System\’);
 
// demonstrate property access
print \’Java version=\’.$system->getProperty(\’java.version\’).\’ <br>\’;
print \’Java vendor=\’ .$system->getProperty(\’java.vendor\’).\’ <br>\’;
print \’OS=\’.$system->getProperty(\’os.name\’).\’ \’.
$system->getProperty(\’os.version\’).\’ on \’.
$system->getProperty(\’os.arch\’).\’ <br>\’;
 
// java.util.Date example
$formatter = new Java(\’java.text.SimpleDateFormat\’,
\”EEEE, MMMM dd, yyyy \’at\’ h:mm:ss a zzzz\”);
 
print $formatter->format(new Java(\’java.util.Date\’));
?>
\r\n

运行它你就会看到下面的结果:
Java version=1.5.0_06
Java vendor=Sun Microsystems Inc.
OS=Windows 2003 5.2 on x86
[o(String):\"星期一, 五月 08, 2006 at 11:45:13 下午 中国标准时间\"]

\r\n

演示程序地址:http://test.coolcode.cn/php_java/index.php

前天晚上,收到maggie和ken送来的小推车,真感动。小祺祺真幸福,一周内收到好多礼物哦,有小妹Linda她姐姐送的小衣服,祺祺外婆亲手做的抱被、尿布等,还有就是奶奶过来了,一起等待小家伙的出生。真不公平,我小时候怎么没这待遇!

\r\n

祺祺, My angel, i love you.

Screenshot gallery


Step 1, get the D-I Loader from http://goodbye-microsoft.com/



Choose between graphical or text-mode install



The loader fetches a netboot Debian-Installer …



… and triggers a reboot.



NTLDR chainloads into GRUB



which in turn starts the lovely Debian-Installer interface

\r\n

有个网站在洗手间里面安装了摄像头,专门对大小便前后洗手的习惯做了个调查,发现92%的人说自己洗了手,但事实上仍有34%的人是在说谎。

在公用洗手间不洗手的坏处可大了,因为门的把手就是细菌聚集地,所有进入洗手间的人都会接触它。洗洗那可爱的小手吧,否则就算洗澡再勤快也有可能让自己的小尾巴中招!

\r\n

来之英國的10岁一位小歌手Declan Galbraith的一首歌《Tell Me Why》,高亢而又凄迷的童声!
\r\n

\"\"
\r\n


视频: Tell Me Why
《Tell Me Why》歌词及中文意思
In my dream,children sing 
A song of love for every boy and girl 
The sky is blue and fields are green: 
And laughter is the language of the world 
Then i wake and all i see 
Is a world full of people in need 
   
Tell me why(why) does it have to be like this? 
Tell me why (why) is there something i have missed? 
Tell me why (why) cos i don\’t understand 
When so many need somebody 
We don\’t give a helping hand Tell me why? 
Everyday i ask myself 
What will i have to do to be a man? 
Do i have to stand and fight 
To prove to everybody who i am? 
Is that what my life is for 
To waste in a world full of war? 
  
tell me why?tell me why? 
tell me why?tell me why? 
just tell me why, why, why? 

Tell me why (why,why,does the tiger run) 
Tell me why(why why do we shoot the gun) 
Tell me why (why,why do we never learn) 
Can someone tell us why we let the forest burn? 
(why,why do we say we care) 
Tell me why(why,why)

中文歌词大意:
在我的梦中
少年总在唱着一首关于男孩和女孩的恋歌
那里有蔚蓝的天空
翠绿的原野
笑声是这个地球上共同的语言
然而当我醒来
看到的却是一个满布穷苦的世界
告诉我这一切为什么会变成这样
….
为什么我们面对这么多贫穷的人却不能伸出援手
我要做怎样一个人
难道必须要做靠孤立和争斗来证实自己存在的人
难道我生来就为了在充满战争的世界里浪费生命
告诉我为什么
为什么
为什么… 

相关资料:
  Declan Galbraith是英國的一位小歌手,他的首張專輯在英國暢銷,英國小歌手Declan曾演唱過Walking In The Air收錄在一張聖誕合輯Christmas Hits裡 , 這首歌也有許多童聲演唱過 , 但Declan演唱起來格外的高亢動人.
  他的《Carrickfergus》,刚开始凯尔特音乐的旋律很吸引人,再听一下Declan的声音,不可想像一个童声居然能唱出如此高亢又甜美的声音,都感觉有点天簌之声的味了!
Declan Galbraith是居住在英国肯特郡的爱尔兰男孩。 在许多方面他是一个正常的 10 岁的男孩。 他喜欢电脑游戏,游泳和足球。他和他的父母和六岁姊妹居住。 他的堂兄弟姊妹Joe是他最好的朋友。 但是 Declan 不只是一个普通的10岁男孩。
  Declan Galbraith小的时候,是和他的祖父班度过。 班是音乐家。 他和爱尔兰的民谣乐团演奏传统的爱尔兰音乐。 他们到处在酒吧和俱乐部等地方演唱。Declan 与他的祖父乐团搭配并学习演唱。在他的祖父死之后,他继承了祖父的演唱事业。
Declan Galbraith,这个眼神清明的十二岁男孩的嗓音有一种让人落泪的力量,即使是圣诞的圣咏,在他的演绎下也渗透了人间悲苦。
\r\n
\"\"


注意:该试听作品来之网络,仅供个人试听,支持者请购买正版音乐。本站自身不存储、控制、编辑或修改被链接的歌曲信息。本站高度重视知识产权保护,并制定了旨在保护权利人的合法权益的措施和步骤,当权利人发现在本站的歌曲链接所指向的内容侵犯其著作权时,请权利人向本站发出“权利通知”,本站将依法采取措施移除相关内容。