phpwebservice調用
Ⅰ php如何調用webservice,知道的高手進
...php 可以通過dom技術操縱xml。。其他的就不是很清楚了。。
Ⅱ php webservice 調用錯誤出現 Fault occurred while processing
D:\xampp\htdocs\qiwuyi\application\controllers\ajax.php:33 這個文件有問題 代碼檢查下
Ⅲ php有哪些優點
1. 跨平台,性能優越,跟linux/Unix結合別跟Windows結合性能強45%,開發成本低,
PHP最經典的組合就是:Linux + Apache + Mysql + PHP。非常適合開發中小型的web應用,因為上手容易,所以開發的速度比較快。而且所有的軟體都是開源免費的,可以減少投入。
比如LAMP(Linux /Apache/Mysql/PHP)或者FAMP(FreeBSD/Apache/Mysql/PHP)結合,或者數據應用夠大可以考慮換 PostgreSQL或者Oracle,支持N種資料庫。(N = 10)
2. 語法簡單,入門快,如果有其它語言基礎的程序員二周左右的時間基本可以入門,並且跟ASP有部分類似。有成熟的開發工具,比如NuPHPed,或者Zend Studio等等,再Linux平台下可以使用Eclipse等等。
3. 目前主流技術都支持,比如WebService、Ajax、XML等等,足夠應用。
4. 有比較完整的支持,比如使用ADODB或者PEAR::DB做資料庫抽象層,用Smarty或者smart template做模板層,如果是PHP 5.1的話,還能夠使用PDO(PHP Data Object)來訪問資料庫。
5. 有很多成熟的框架,比如支持MVC的框架:phpMVC,支持類似ASP.net的事件驅動的框架:Prado,支持類似Ruby On Rails的快速開發的框架:Cake等等,足夠滿足你的應用需求。
6. PHP 5已經有成熟的面向對象體系,能夠適應基本的面向對象要求。適合開發大型項目。
7. 有成熟的社區來支持PHP的開發。
8. 目前已經很多大型應用都是使用PHP,比如淘寶網、Yahoo、163、Sina等等大型門戶,很多選用PHP來作為他們的開發語言,所以大型門戶都能夠選用它,我想足夠能夠你的使用了。(據了解現在內部都在逐漸轉向java)
9. 有很多開源的框架或開源的系統可以使用,比如比較知名的開源框架有Zend Framework、CakePHP、CodeIgniter、symfony等,開源論壇有Discuz!、Phpwind等,開源博客 WordPress,開源網店系統如Ecshop、ShopEx等,開源的SNS系統如UCHome、ThinkSNS等。
關注優就業,學習更多IT知識。
Ⅳ PHP如何調用webservice
最近工作中需要用php調用webservice介面,對php不熟,上網搜搜,發現關於用php調用webservice的文章也不多,不少還是php4里用nusoap這個模塊調用的方法,其實php5里已經包含了處理soap的模塊,但是資料太少了,上php官網上查幫助,寫的不是很容易理解,經過多次實踐,終於搞清楚了,php調用webservice還是非常簡單的。下面用一個例子說明:
webservice服務是查詢QQ用戶是否在線
使用php5開發客戶端:
<?php
try{
//$client=newSoapClient("HelloService.wsdl",array('encoding'=>'UTF-8'));
$client=newSoapClient("webservices/qqOnlineWebService.asmx?wsdl");
var_mp($client->__getFunctions());
print("<br/>");
var_mp($client->__getTypes());
print("<br/>");
classqqCheckOnline{
var$qqCode="10000";
};
$arrPara=array(newqqCheckOnline);
$arrResult=$client->__Call("qqCheckOnline",$arrPara);//$client->qqCheckOnline($arrPara);
echo$arrResult->qqCheckOnlineResult."<br/>";
}catch(SOAPFault$e){
print$e;
}
?>
代碼確實很簡單吧,創建SoapClient對象時,可以使用保存在本地WSDL文件,也可以使用遠程的地址,後面的array數組里可以帶上很多的參數,具體參數可以查php的SoapClient幫助,這里帶的是字元集編碼,如果調用方法的參數里有中文,一定要指定字元集編碼,否則會出錯。
調用webservice前可以先調用SoapClient的__geunctions()和__getTypes()方法看一下你要調用的webservice暴露的方法,參數和數據類型,需要注意的是傳入的參數名一定要和soapclient裡面定義的一致,否則參數是傳不過去的。
需要使用SoapClient的__soapCall()或__call()方法,具體使用方法可以查php的幫助文檔。如果參數要求是一個結構體,請用類代替,如上面的代碼。
另外發現個問題,如果webservice方法返回的是xml格式的字元串,php接收到以後會自己把數據內容解析出來,而不是xml字元串.
Ⅳ 請教一下java和php協同開發的方法
引用
因為在做垂直搜索工作中,使用的是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是用的相對路徑。不管是絕對還是相對,只要路徑對了就行了。
Ⅵ ThinkPHP如何調用WebService的,需要什麼樣的類,誰能給個詳細的代碼謝謝
可以用import函數.例如, 你可以把phpMailer.class.php放在 ThinkPHP/Library/Org/Util/文件夾下.
要用的時候,
import('Org.Util.phpMailer');
如果用命名空間的話,可以直接new 這個對象
Ⅶ php webservice是什麼
一言以蔽之:WebService是一種跨編程語言和跨操作系統平台的遠程調用技術。
所謂跨編程語言和跨操作平台,就是說服務端程序採用java編寫,客戶端程序則可以採用其他編程語言編寫,反之亦然!跨操作系統平台則是指服務端程序和客戶端程序可以在不同的操作系統上運行。
所謂遠程調用,就是一台計算機a上的一個程序可以調用到另外一台計算機b上的一個對象的方法,譬如,銀聯提供給商場的pos刷卡系統,商場的POS機轉賬調用的轉賬方法的代碼其實是跑在銀行伺服器上。再比如,amazon,天氣預報系統,淘寶網,校內網,網路等把自己的系統服務以webservice服務的形式暴露出來,讓第三方網站和程序可以調用這些服務功能,這樣擴展了自己系統的市場佔有率,往大的概念上吹,就是所謂的SOA應用。
其實可以從多個角度來理解WebService,從表面上看,WebService就是一個應用程序向外界暴露出一個能通過Web進行調用的API,也就是說能用編程的方法通過Web來調用這個應用程序。我們把調用這個WebService的應用程序叫做客戶端,而把提供這個WebService的應用程序叫做服務端。從深層次看,WebService是建立可互操作的分布式應用程序的新平台,是一個平台,是一套標准。它定義了應用程序如何在Web上實現互操作性,你可以用任何你喜歡的語言,在任何你喜歡的平台上寫Web service ,只要我們可以通過Web service標准對這些服務進行查詢和訪問。
WebService平台需要一套協議來實現分布式應用程序的創建。任何平台都有它的數據表示方法和類型系統。要實現互操作性,WebService平台必須提供一套標準的類型系統,用於溝通不同平台、編程語言和組件模型中的不同類型系統。Web service平台必須提供一種標准來描述Web service,讓客戶可以得到足夠的信息來調用這個Web service。最後,我們還必須有一種方法來對這個Web service進行遠程調用,這種方法實際是一種遠程過程調用協議(RPC)。為了達到互操作性,這種RPC協議還必須與平台和編程語言無關。
至於php嘛, 就是一門動態的腳本語言, 無需和webservice畫上勾