引用
因為在做垂直搜索工作中,使用的是java編寫的一個搜索類庫。做垂直搜索,很多實用要使用到配置。當搜索的信息量大時,網站的更新。搜索程序的配置維護是一個不可忽視的問題。所以用了php做網頁,提供配置界面,這樣就可以不用直接修改配置文件或是配置資料庫表。當把配置信息配置好了,我們需要檢測配置是否正確,因為使用的是java程序,所以檢測配置的正確與否使用的也是java程序來檢測。這里就存在一個問題,就是需要把php頁面上的信息傳入到java程序中去檢測。這個時候就需要php和java通信了。下面我就來介紹下怎麼使php跟java通信(當然,你也可以使用類似webservice等技術)也就是php中調用java程序。 php要調用java程序:需要以下准備,php程序,java程序,還有就是shell程序或是bat程序。下面分別介紹下在linux伺服器下php調用java程序和在windows伺服器下調用java程序。前提是php,apache,jdk的環境都已經配置好。
一 在linux下php調用java程序是通過shell文件。分別是以下三個文件: test_shell.php test_shell.java test_shell.sh 他們的源代碼如下:
1.test_shell.java程序代碼
public class test_shell {
public static void main(String[] args) {
System.out.println("你輸入的參數是:"+args[0]+"t"+args[1]);
}
}
2.test_shell.php程序代碼
<?php
/*
* 該函數是用來執行shell命令的,其實還可以使用:exec(),system(),
* popen()和pclose(),passthru() 函數。最長用的是前面兩個和例中使
* 用的shell_exec()。
*/
$args1="我喜歡你";
$args2="我很愛你";
// 注意空格
$r=shell_exec("./test_shell.sh $args1 $args2");
echo $r;
?>
3.test_shell.sh程序代碼是
#!/bin/sh
JAVA_HOME=/usr/local/jdk
CLASSPATH=.:/usr/local/jdk/jre/lib/rt.jar:/usr/local/apache/htdocs/test_shell/test_shell.class
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME CLASSPATH PATH
cd /usr/local/apache/htdocs/test_shell
java test_shell
#shell代碼結束
以下是三個程序的存放路徑和運行次序。
1.三個文件都必須在同一目錄下,比如在/usr/local/apache/htdocs/test_shell/下,不然php很難調到java程序。
2.把test_shell.java程序編譯成test_shell.class,然後把test_shell.class文件存放到CLASSPATH中。如果系統配置了那些環境變數,這里在配置一次是沒有壞處的,也不會影響配置好的系統環境變數。這里設置的好處是當沒有配置jdk環境配置,只有jre時,則需把jre放到/usr/local/jdk下就以。
二、下面先介紹在windows伺服器下,php調用java程序是通過bat文件來的。分別是以下三個文件: test_bat.php test_bat.java test_bat.sh 他們的源代碼如下:
1.java程序
public class test_bat {
public static void main(String[] args) {
System.out.println("你輸入的參數是:"+args[0]+"t"+args[1]);
}
}
2.test_bat.php程序代碼
<?php
/*
* 該函數是用來執行shell命令的,其實還可以使用:exec(),system(),
* popen()和pclose(),passthru() 函數。最長用的是前面兩個和例中使
* 用的shell_exec()。
*/
$args1="我喜歡你";
$args2="我很愛你";
// 注意空格
$r=shell_exec("./test_shell.sh $args1 $args2");
echo $r;
?>
3.test_bat.sh程序代碼是
@echo off
set path=%path%;%cd%jrebin
set CLASSPATH=.;%cd%jrelibrt.jar;%cd%test_bat.class
java test_bat %1 %2
#bat代碼結束
1.三個文件都必須放在同一目錄下,比如在/usr/local/apache/htdocs/test_bat/下,不然php很難調到java程序。
2.把test_bat.java程序編譯成test_bat.class,然後把test_bat.class文件存放到CLASSPATH中。如果系統配置了那些環境變數,這里在配置是沒有壞處的,也不會影響配置好的系統環境變數。這里設置的好處是當沒有配置jdk環境配置,只有jre時,則需把jre放到跟跟test_bat.java同一目錄下就行了。
三、上面兩個例子中,test_shell.sh用的絕對路徑,test_bat.bat是用的相對路徑。不管是絕對還是相對,只要路徑對了就行了。
⑵ PHP+JAVA
這種跨語言的,我所了解中只有webservice,php做客戶端,當客戶端發送請求的時候,php把數據整理好,通過http調用java的後台方法,java拿到參數後進行處理,將處理的結果返回給php輸出,php和java之間只能傳字元串或者字元串數組。 網上很多小例子的。
⑶ php程序與java程序之間做數據交互,怎麼做
用php的curl模擬瀏覽器請求是訪問java伺服器程序
2.用java的一個http類庫同樣發送http請求來訪問PHP伺服器
$context=stream_context_create(array('http'=>array('method'=>"GET",'timeout'=>30,)));
$string=file_get_contents('http://www..com/s?wd=php%20file_put_contents',false,$context);//換成java地址
echo'這可不是網路,只是我輸出了網路的返回';
echo$string;
⑷ PHP與JAVA交互,該怎麼搞
前後台交互常用的就是HTTP方式,GET和POST。
JAVA後台跑在java容器裡面,接受前台的請求就可以了。
建議你 用一下Chrome的插件POST MAN 你就懂了。
這個可以讓你對HTTP請求有一個比較深入的理解。
不光是java後台,.net後台,php後台都一樣。
使用的都是HTTP協議,數據傳輸的格式都是一樣的。
⑸ PHP與已存在的Java應用程序集成
PHP功能的另外一個優勢是其調用已有Java對象方法首模脊的能力 通碼鋒過此項功能可將PHP集成進已有的基於Java的應用程序 如果你正在工作場合推廣PHP 這項功能尤其顯得時髦 Java無處不在 為實現此功能 你需要在伺服器上安裝Java虛擬機(JVM) 如果你將安裝(或已安裝)來自Sun Kaffe IBM或Blackdown的JDK 則可以迅速開始工作 當配置PHP時 需要對配置指令增加 with java參數 然後修改php ini文件中部分元素 php ini 中通常要修改以下各行 [Java]java library path=/path/to/libraryjava class path=/classpath/extension_dir=/path/to/extensionsextension=libphp_java so需要提醒以上修者滲改都取決於你的安裝類型 你應該閱讀你的PHP安裝目錄下ext/java目錄中的README文件以了解有關Java功能配置的更多信息 這里有一個簡單例子 通過PHP腳本創建新的Java對象 然後該腳本將訪問某些Java屬性並將其輸出 這同的實例一樣令人激動 但此例還使你知道了更多的可能的方法 <?$system = new Java( java lang System );echo <P>Java version = $system >getProperty( java version ) <br> ;echo Java vendor = $system >getProperty( java vendor ) </p> ;?>如果你已經具備了Java知識 那你應當盡全力在此項目上幫助開發者 此類集成能力必然成為將來PHP發展和為人所接受的關鍵 因此 做這些工作的人越多 PHP未來的發展就會更加美好 lishixin/Article/program/PHP/201311/20782
⑹ 網站可以混合PHP和JAVA進行開發么
可以,淘寶,手機之家, Digg 等都是採用PHP和Java混合的方式進行協同開發。
Php程序員:用直觀,快速,簡單的方式解決問題,注重於結果。
Java程序員:注重積累和重用,注重於過程,有時過度設計。
如果能把PHP和Java結合起來將是一件很美好的事情,Java用於後台的資料庫查詢、存儲。而PHP作為最前端的頁面展示,用戶體驗上應該是很不錯的。
⑺ 大型網站中,php和java是怎麼結合的
我是做JAVAEE的,但還沒有和PHP的共存的項目的經驗,但.NET是有的。
.NET負責報表部分,JAVA是業務處理,實際上,兩部分除了訪問同一個庫外,沒什麼交集。
我想PHP應該不同,應該是和JAVA分擔前後端的。
PHP負責展示及控制,JAVA負責業務和固化。
PHP因其執行容器原因,沒辦法駐留內存,高並發性能上就是個問題。
JAVA可以彌補這點。
前端上PHP可以彌補JAVA開發效率低的短板。
純個人理解。
⑻ PHP可以和JAVA混合在一起開發網站么
php目前是web2.0時代做火的一門編程語言。在一線城市大量招聘php人才。成功案例,去谷歌或者網路一下,看一下結果就知道php現在是多麼流行了。php要運行,需要伺服器來支持運行。可以喝Java結合,php一個支持Java擴展的模塊。當然了,也可以不同的模塊使用不同的語言來編寫,而不限於Java一種。
⑼ 【程序】Java和PHP這兩種技術能否結合使用
PHP和JAVA不能結合,可以和javascrip腳本結合。做一些特殊效果。
⑽ PHP與JAVA交互,該怎麼搞
這是一門課程了。javaweb,,或者叫jsp。jsp就是由html和java腳本,等語言構成的。java程序嵌套在html里。相當於php。以網頁的形式將java展現。這也就是所謂的動態。以為java程序獲取的時間會變動。或者資料庫變動從而引起網頁的變動。具體實現,你可以在網上查找jsp教程。以下是一個jsp頁面的例子:注釋(1):上面一句是jsp命令語句,標准形式表示,利用java腳本語言。引入java.util包里的所有文件。編碼為utf-8注釋2:java腳本之後是標準的html格式。可嵌入java代碼">MyJSP'index.jsp'startingpageThisismyJSPpage.可嵌入java腳本