java中的phps(Java中的數組是什麼類型)

本文目錄一覽:

PHP和JAVA之間的區別是什麼?

Java和PHP都是編程語言,被廣泛使用。他們之間有許多不同之處。Java是一種功能強大、分支眾多的純面向對象開發軟件。沒有Java是無法實現的。C/s或B/s。沒有一種語言可以與Java相比。PHP是一顆冉冉升起的新星。它吸收了Java、C和Perl的優點,並專註於互聯網。

這些Java框架可以為開發人員提供更廣闊的空間來設計科學合理的體系結構,體現了Java多層體系結構的特點。PHP與MySQL開發兼容,使得PHP在考慮成本因素的前提下變得小巧精緻,受到一些中小型網站的青睞。PHP最經典的組合是,PHP+MySQL+Apache。

它非常適合開發中小型web應用程序,並且開發速度相對較快。Java的web應用服務器包括免費的tomcat、JBoss等,更好的商業服務包括WebSphere和WebLogic。Java是一種通用的面向對象編程語言,旨在生成可以在任何地方使用相同代碼的代碼。這種編程語言是基於類、面向對象和可讀的,它支持服務器和客戶端。

Java可以被編譯或解釋。java編譯器將源代碼轉換為位元組碼,然後java解釋器生成機器代碼,由運行java程序的機器直接執行。PHP被稱為超文本預處理器。它是一種服務器端腳本語言。它是一種動態類型語言,不需要編譯代碼;它是為web開發目的而開發和設計的。PHP受不同編程語言的影響。它主要是利用C語言和C++編程語言的一些特性來開發和實現的。PHP支持不同的跨平台操作系統。

java怎麼調用php的語句是什麼

PHP調用JAVA方式

1. 背景

在開發招商銀行信用卡分期付款功能過程中,在支付成功之後需要對銀行的返回數據進行簽名驗證,因簽名加密方式招商銀行是不提供的,只提供了相應的JAVA驗證類測試例子,而本項目採用的是PHP架構方式,因此需要PHP調用JAVA的驗證類來測試簽名是否正確。

2. 目的

本文檔提供一種PHP調用JAVA類的方式來進行招行的支付成功簽名驗證,本方法也可用於其他銀行的JAVA簽名驗證方式。

3. 名詞解釋

名詞

解釋說明

php-java-bridge

PHP和JAVA的連接橋

4. php-java-bridge安裝和配置介紹

4.1 安裝

Php-java-bridge下載路徑:

最新php-java-bridge版本是php-java-bridge_6.2.1.tar.gz解壓之後採用/usr/local/php/phpize進行模塊編譯,提示Cannot find config.m4,版本過高問題,採用了5.4.4.2版本。

編譯及安裝:

tar zxvf php-java-bridge_5.4.4.2.tar.gz

cd php-java-bridge-5.4.4.2/

/usr/local/php/bin/phpize

./configure –disable-servlet –with-java=/usr/local/java/,/usr/local/java/jre –with-php-config=/usr/local/php/bin/php-configmake make install

4.2 配置

vim /usr/local/php/etc/php.ini

[新增]

extension=java.so

[java]

java.java_home=”/usr/local/java/”

java.java=”/usr/local/java/jre/bin/java”

java.log_file=”/var/log/php-java-bridge.log”java.classpath=”/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/JavaBridge.jar”java.libpath=”/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/”java.log_level=”3″

java.hosts=”10.204.79.232:8081″

4.3 啟動

重新啟動nginx或者apache,輸入?php phpinfo();?可以看到java support

Enabled

java bridge

5.4.4.2

java.log_level

2

手動啟動javaBridge

java -jar JavaBridge.jar SERVLET:8080

也可以嘗試使用java -jar JavaBridge.jar SERVLET_LOCAL:80814.4 測試

解壓javaBridge.jar,取出java目錄下相關的Java.inc文件測試代碼:

require_once(“java/Java.inc”);

$string = new Java(“java.lang.String”, “HelloWorld”);echo $string;

$system=new Java(“java.lang.System”);

echo “Java version=”.$system-getProperty(“java.version”).” “;注意:java/Java.inc記得從javaBridge.jar解壓出來放在相關php代碼中注意取值:java_is_true java_is_false java_values5. 注意事項及配置過程中的問題

下述描述在實際配置測試過程中可能會碰到的問題及解決方法:

5.1 問題

問題1:

configure: error: host_alias is not set. Make sure to run config.guessBack-end configuration failed.

Please install the recommended autoconf, libtool and automake versionsor disable back-end configuration and use the pre-compiled J2EE back-end:

./configure –disable-backend –with-java=JAVA_HOME

configure: error: ./configure.gnu failed for server安裝yum install libtool即可

5.2 注意事項

事項1:

遠程調用require_once(『『);需要設置php.ini的allow_url_include參數為on,同時編輯 JavaBridge 部署的 Web 應用程序目錄中的 web.xml 文件,如下:

取消對這個部分的注釋,以便允許對您的 Java 類進行遠程訪問init-param

param-namepromiscuous/param-name

param-valueOn/param-value

/init-param

事項2:

在實際生產環境中,考慮到如果每台機器都部署一個JavaBridge服務的話,不好維護。故考慮在單台或2台左右機器上部署,其他機器連接到部署機器上,可以做分流承壓的功效並且易監控。在外網環境下發現在調用部署環境的內外網IP都無法獲取到指定文檔。實際require_once本質就是調用部署環境的java.inc文件,可以考慮把相關文件放在本地生產環境上,但在引用Java_require相關JAR包會提示連接不到JavaBridge服務,閱讀Java.inc可以查看它會通過幾個地方設置JAVA_HOST宏變量,第一種是通過require_once裏面的IP或者域名和端口,另外一種是在未設置JAVA_HOST宏變量的前提下讀取php.ini,如果都沒有java.hosts參數則默認為127.0.0.1:8080。

排除第一種方式如果採用讀取php.ini的話,因為本身java.hosts參數不屬於PHP可人為設置的參數,採用ini_set函數並不能指定java.hosts的值,所以一種方式是在所有項目的生產環境的php.ini都指定內網IP和端口,如java.hosts=10.204.79.231:8080。還有一種方式,查閱Java.inc可以看到是在未設置JAVA_HOST變量的前提下是去讀取php.ini,我們可以在require_once(『java/Java.inc『)之前新增一行define (“JAVA_HOSTS”, $host)。

5.3 參考例子

個人的實際測試代碼如下:

private function _checkSign($strText, $strSign){$ret = false;

try{

$host = ConfigWrapper::load()-services-phpjava-host;if($host != NULL){

define (“JAVA_HOSTS”, $host);

}

require_once(『java/Java.inc『);

java_require(self::CMBJAR);

$pay = new Java(『testCdpaySign『, self::CERFILE);$result = $pay-checkSign((string)$strText, (string)$strSign);if(java_is_true($result) == 1){

$ret = true;

}

}catch (\Exception $e) {

Logger::debug(“_checkSign = ” . $e-getMessage());}

return $ret;

}

JAVA PHP最大的區別是什麼?學習什麼好?

java和php都是應用十分廣泛的編程語言,它們之間的存在不少差異。下面本篇文章就來給大家介紹一下java和php之間存在的不同之處,希望對大家有所幫助。

1、專註的領域不同

java是純面向對象開發,功能強大,分支眾多,沒有java不能做的軟件。C/S也好B/S也好。從功能上講,沒有語言可以和java相比。但其優勢也是其劣勢,具體參考後面的瓶頸解釋。

PHP屬於後起之秀,吸收了java和c以及perl等語言優點,專註互聯網領域。在WEB領域中PHP擁有得天獨厚的優勢,WEB領域沒有語言可以和PHP相比。

2、數據庫訪問上不同

Java通過JDBC來訪問數據庫,通過不同的數據庫廠商提供的數據庫驅動方便地訪問數據庫。訪問數據庫的接口比較統一。

PHP對於不同的數據庫採用不同的數據庫訪問接口,所以數據庫訪問代碼的通用性不強。例如:用Java開發的Web應用從MySQL數據庫轉到Oracle數據庫只需要做很少的修改。而PHP則需要做大量的修改工作。

3、系統技術架構上不同

Java語言有着完備的MVC框架,包括視圖層、業務控制層和持久層,在Spring框架中,我們可以通過IOC和AOP降低編碼過程中的高耦合,也就是說Java中的這些框架可以讓開發者有更廣闊的空間去設計科學合理的架構,也體現着Java多層架構的特點。

相比Java而言,PHP留給開發者的空間並不多,但PHP近些年也在改進,迎合電子商務的需要,引入MVC設計模式,但成熟性和穩定性上與Java還是有着不小的差距。不得不提的是PHP可兼容MySQL開發,這使得在考慮成本因素的前提下,PHP變得小而精,收到了一些中小型網站的青睞。

4、安全性上不同

在同是開源和跨平台的java面前,php丟掉了很多的優勢,在代碼的安全性上尤為突出。

php的開發程序在別人拿到代碼後,可以很容易的進行修改。而java開發的程序由於無法看到完整的源代碼,只能看到一些編譯好的類文件,所以安全性較高。

5、開發成本上的不同

PHP最經典的組合就是:PHP + MySQL + Apache。非常適合開發中小型的Web應用,開發的速度比較快。而且所有的軟件都是開源免費的,可以減少投入。

Java的Web應用服務器有免費Tomcat、JBoss等,如果需要更好的商業化的服務有:Web Sphere和 Web logic。

6、學習的難易程度不同

php是解釋執行的服務器腳本語言,首先php有簡單容易上手的特點。語法和c語言比較象,所以學過c語言的程序員可以很快的

JAVA和PHP的區別是什麼呢?

PHP適合於快速開發,中小型應用系統,開發成本低,能夠對變動的需求作出快速的反應。而Java適合於開發大型的應用系統,應用的前景比較廣闊,系統易維護、可復用性較好。

通過對兩種語言寫的OA系統的比較,對這兩種語言的差異進行了一個全面的比較.

現在市場上的oa基本上可歸結為兩大陣營,即php陣營和java陣營。但對接觸oa不久的用戶來說,看到的往往只是它們的表相,只是明顯的價格差異,卻很難看出它們之間的實際差異。其實, PHP + MYSQL 不值錢不僅僅局限於oa軟件,而是整體上PHP + MYSQL開發的軟件都不如java開發的軟件值錢。為什麼PHP + MYSQL 的OA為什麼不值錢呢?首先得明白php和java之間的差異才行。

1、系統的技術架構比較

分層是將系統進行有效組織的方式,分而治之的思想是計算機領域中非常重要的思想。在好的分層思想引導下,便能實現「高內聚、低耦合」,也能將具體的問題割裂開來,易於控制、易於延展,更易於分配資源。PHP只能實現簡單的分佈式兩層或三層的架構,而JAVA在這方面就十分強大,可以實現多層的網絡架構。運用MVC的設計模式,可使oa系統具有更加高效、合理的系統架構。技術架構的落後,使運用php編寫的oa軟件系統先天不足,而後天又無法補足其先天上的劣勢。使得系統在可拓展性、需求應變性上與JAVA編寫的oa軟件系統的差距越來越大。架構的差距,註定了php做的oa充其量是個小家碧玉,始終無法和java這種大家閨秀同台競技。

2、數據庫訪問比較

PHP可編譯成具有與許多數據庫相連接的函數。將自己編寫外圍的函數去間接存取數據庫。通過這樣的途徑當更換使用的數據庫時,可以輕鬆地修改編碼以適應這樣的變化。但PHP提供的數據庫接口支持彼此不統一,比如對Oracle, MySQL,Sybase的接口,彼此都不一樣。由於PHP對於不同的數據庫採用不同的數據庫訪問接口,所以數據庫訪問代碼的通用性不強。

而Java通過JDBC來訪問數據庫,通過不同的數據庫廠商提供的數據庫驅動方便地訪問數據庫,訪問數據庫的接口比較統一。如果同樣是將開發的web應用從MYSQL數據數轉到ORACLE數據,PHP需要做大量的修改工作,而且比較繁瑣。但JAVA開發的便只需要很少的更改便能實現。

數據庫訪問方式的差異,奠定了php開發出的oa和java開發出來的oa是馬車和火車的差距,前者只能亦步亦趨而且額度有限,後者卻是工業化的結晶,不僅能夠包容萬物而且速度上穩步提升。

3、安全性對比

在同是開源和跨平台的java面前,php丟掉了很多的優勢。在代碼的安全性上尤為突出。php的開發程序在別人拿到代碼後,可以很容易的進行修改。而java開發的程序由於無法看到完整的源代碼,只能看到一些編譯好的類文件,所以安全性較高。加之系統架構的優勢,在安全性上php和java是相去甚遠。

如果非要將php和java在安全性上做個比較的話,同一個小偷光顧php那是隨便拿來隨便改,想拿什麼拿什麼,拿的高興還能大筆一輝某某到此一游。而光顧java的時候,便會發現警察把守,內設自動報警裝置,即便突破重重阻擾後進入居室。那值錢的東西都放在加密後的保險柜中,只能望洋興嘆、鎩羽而歸。

4、前瞻性和拓展性

從整體來說,php適用於中小型系統,而java適用於大型系統。Php能夠將單一的事件做好,但卻不適合完成集成度較高的多項並發事件。為什麼說php適合中小型系統而不適合做大系統呢?

首先, php缺乏多層結構支持。而對於大型的系統負荷站點,只能採用分佈計算。將數據庫、應用邏輯層和表示邏輯層彼此分開,並將同層的根據流量分開,組成二維數組。而php恰恰缺乏這種支持。

其次,PHP提供的數據庫接口不統一,要將多個不同的數據庫數據統一需要花費很大的力氣。而JAVA則沒有這種缺陷,可通過SUN Java的Java Class和EJB獲得規模支持,通過EJB/CORBA以及眾多廠商的Application Server獲得結構支持。如IBM的E-business,它的核心是採用JSP/Servlet的Web Sphere,是通過CGI來提供支持的。

如果將Php比作將才,具備獨擋一方的能力。那麼java便是帥才,具有較好的前瞻性和拓展性,整體布局和協同能力強。能夠指揮千軍萬馬,最後逐鹿中原。

5、開發成本比較

既然php在諸多方面都不如java優異,那麼php開發出的oa產品何以與java產品競爭呢?在於Php陣營普遍走的是低端路線,而java陣營走的是中高端路線。兩者之間交*的區域較小。

軟件價格的高低很大程度上和自身成本和功能相掛鈎。php的入門門檻較低,絕大多數學過c的程序員都很容易轉型為php程序員,這使得php程序員的泛濫成災的同時,低成本的php軟件產品也層出不窮。以PHP最經典的組合PHP + MySQL + Apache為例,由於所有軟件都是開源免費的,所以投入並不高。

而java開發需要特定的環境,成長為一個合格的java程序員需要一定的時間,java程序員的成本也是php成本的幾倍。Java的web應用服務器免費的有Tomcat、JBoss等,而要想具有很好的商業化服務便必須選用Web Sphere和 Web logic。這其中投入的成本無形中便超是php成本的N倍。所以,java開發oa的成本要遠遠高於php開發出來的同類軟件產品。但也正由於java開發的成本較高,很難實現抄襲和短期內逾越的可能,也使得java用開發出的產品門檻更高。

如何在java程序中調用php文件

安裝和配置PHP/Java橋

最新的PHP/Java橋zip包可在sourceforge .net/ projects/ php-java-bridge/下載到,安裝過程依賴於選擇哪個Java平台通過這座橋與PHP腳本交互。

◆對於J2SE,安裝非常簡單:

◆安裝J2SE 1.6或更高版本

◆安裝PHP 5.1.4或更高版本

◆解壓php-java-bridge_5.2.2_j2ee.zip包

在Java類中使用PHP腳本

為了在Java應用程序中調用PHP方法,你必須對Java API非常熟悉,這個API最重要的類是:

javax.script.ScriptEngineManager:這個類擴展了java.lang.Object類,並且為ScriptEngine類提供了實例化機制。

javax.script.ScriptEngine:這是一個Java接口,包括了每個Java ScriptEngine中期望的完整功能的函數,它是通過如AbstractScriptEngine, InteractivePhpScriptEngine, InvocablePhpScriptEngine, InvocablePhpServletScriptEngine, PhpScriptEngine,和 PhpServletScriptEngine這些類實現的。

javax.script.Invocable:這個接口提供了一個函數允許java應用程序在腳本編譯器下調用中間層代碼。

提醒:在/documentation/server/documentation/API目錄下有更多的類及其詳細信息。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/229006.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-10 12:09
下一篇 2024-12-10 12:09

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • int類型變量的細節與注意事項

    本文將從 int 類型變量的定義、聲明、初始化、範圍、運算和類型轉換等方面,對 int 類型變量進行詳細闡述和講解,幫助讀者更好地掌握和應用 int 變量。 一、定義與聲明 int…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Python導入數組

    本文將為您詳細闡述Python導入數組的方法、優勢、適用場景等方面,並附上代碼示例。 一、numpy庫的使用 numpy是Python中一個強大的數學庫,其中提供了非常豐富的數學函…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發佈。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變量時顯示的指定變量類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Python返回數組:一次性搞定多種數據類型

    Python是一種多用途的高級編程語言,具有高效性和易讀性的特點,因此被廣泛應用於數據科學、機器學習、Web開發、遊戲開發等各個領域。其中,Python返回數組也是一項非常強大的功…

    編程 2025-04-29

發表回復

登錄後才能評論