導航:首頁 > 編程語言 > phpsoapserver參數

phpsoapserver參數

發布時間:2024-12-28 02:14:57

A. php連接webservice每次都要new SoapClient()嗎

最近工作中需要用php調用web service介面,對php不熟,上網搜搜,發現關於用php調用web service的文章也不多,不少還是php4里用nusoap這個模塊調用的方法,其實php5里已經包含了處理soap的模塊,但是資料太少了,上php官網上查幫助,寫的不是很容易理解,經過多次實踐,終於搞清楚了,php調用web service還是非常簡單的。下面用一個例子說明:
web service服務是查詢QQ用戶是否在線
使用php5開發客戶端:
<?php
try {
//$client = new SoapClient("HelloService.wsdl",array('encoding'=>'UTF-8'));
$client = new SoapClient("webservices/qqOnlineWebService.asmx?wsdl");
var_mp($client->__getFunctions());
print("");
var_mp($client->__getTypes());
print("");

class qqCheckOnline{
var $qqCode = "10000";
};
$arrPara = array(new qqCheckOnline);

$arrResult = $client->__Call("qqCheckOnline",$arrPara);//$client->qqCheckOnline($arrPara);

echo $arrResult->qqCheckOnlineResult . "";
} catch (SOAPFault $e) {
print $e;
}
?>
代碼確實很簡單吧,創建SoapClient對象時,可以使用保存在本地WSDL文件,也可以使用遠程的地址,後面的array數組里可以帶上很多的參數,具體參數可以查php的SoapClient幫助,這里帶的是字元集編碼,如果調用方法的參數里有中文,一定要指定字元集編碼,否則會出錯。
調用web service前可以先調用SoapClient的__geunctions()和__getTypes()方法看一下你要調用的web service暴露的方法,參數和數據類型,需要注意的是傳入的參數名一定要和soapclient裡面定義的一致,否則參數是傳不過去的。
需要使用SoapClient的__soapCall()或__call()方法,具體使用方法可以查php的幫助文檔。如果參數要求是一個結構體,請用類代替,如上面的代碼。
另外發現個問題,如果web service方法返回的是xml格式的字元串,php接收到以後會自己把數據內容解析出來,而不是xml字元串.

B. php中soapClient如何配置

一、Linux下安裝soap模塊
安裝完php後最好保留當時安裝的文件,比如usr/local/php-5.3.2
查看soap模塊是否安裝的辦法:在php的安裝目錄下運行php -m來查看
如:/usr/local/php/bin/php -m |grep 『soap』
如果沒有安裝,則進入php的安裝源文件夾
cd php-5.3.2/ext/soap
進入後在此運行phpize命令
/usr/local/php/bin/phpize
查看信息是否有出錯,沒有出錯的話運行如下命令:
./configure –with-php-config=/usr/local/php/bin/php-config –enable-soap
然後是安裝編譯
make
最後是安裝
make install
安裝好之後會提示soap.so文件的保存路徑
編譯後的soap.so文件保存在了/usr/local/php/lib/php/extensions/no-debug-non-zts-20111222目錄下,接著修改php.ini文件
手工修改:查找/usr/local/php/etc/php.ini中的extension_dir = 「./」,默認是注釋掉的
修改為extension_dir = 「/usr/local/php/lib/php/extensions/no-debug-non-zts-20111222/」
並在此行後增加如下,然後保存:
extension = 「soap.so」
重新啟動apache,在運行php -m就已經能看到擴展的soap模塊了。
如果還要安裝擴展別的模塊可以以此類推。

二、Windows下安裝soap模塊

在Windows下可以通過修改php.ini來選擇當PHP啟動時載入哪些擴展庫。也可以在腳本中通過使用 dl()來動態載入。PHP擴展庫的DLL文件都具有php_前綴。很多擴展庫都內置於Windows版的PHP之中。這意味著要載入這些擴展庫不需要額外的DLL文件和extension配置指令。Windows下的PHP擴展庫列表列出了需要或曾經需要額外PHP DLL文件的擴展庫。
要在php.ini中啟用某擴展庫,需要去掉該行extension=php_*.dll前的注釋符號,將想要載入的擴展庫前的分號(;)刪除即可。
啟用php_soap.dll擴展庫
// 將這一行
;extension=php_soap.dll
// 改成這樣
extension=php_soap.dll
Note: 如果運行伺服器模塊版的PHP,在修改了php.ini之後別忘了重新啟動web伺服器以使其改動生效。

下面是內置的擴展庫列表:
php_bz2.dll bzip2壓縮函數庫
php_calendar.dll 歷法轉換函數庫
php_crack.dll 密碼破解函數庫
php_ctype.dll ctype家族函數庫
php_curl.dll CURL,客戶端URL庫函數庫
php_dba.dll DBA:資料庫(dbm 風格)抽象層函數庫
php_dbase.dll dBase函數庫
php_dbx.dll dbx函數庫
php_domxml.dll DOM XML函數庫
php_dotnet.dll .NET函數庫
php_exif.dll EXIF函數庫
php_fbsql.dll FrontBase函數庫
php_fdf.dll FDF:表單數據格式化函數庫
php_filepro.dll filePro函數庫
php_ftp.dll FTP函數庫
php_gd.dll GD庫圖像函數庫
php_gd2.dll GD庫圖像函數庫
php_gettext.dll Gettext函數庫
php_hyperwave.dll HyperWave函數庫
php_iconv.dll ICONV字元集轉換
php_ifx.dll Informix函數庫
php_iisfunc.dll IIS 管理函數庫
php_imap.dll IMAP,POP3 和 NNTP 函數庫
php_ingres.dll Ingres II函數庫
php_interbase.dll InterBasefunctions
php_java.dll Java函數庫
php_ldap.dll LDAP函數庫
php_mbstring.dll 多位元組字元串函數庫
php_mcrypt.dll Mcrypt 加密函數庫
php_mhash.dll Mhash函數庫
php_mime_magic.dll Mimetype函數庫
php_ming.dll Ming函數庫(Flash)
php_msql.dll mSQL函數庫
php_mssql.dll MSSQL函數庫
php_mysql.dll MySQL函數庫
php_mysqli.dll MySQLi函數庫
php_oci8.dll Oracle 8函數庫
php_openssl.dll OpenSSL函數庫
php_overload.dll 對象重載函數庫
php_pdf.dll PDF函數庫
php_pgsql.dll PostgreSQL函數庫
php_printer.dll 列印機函數庫
php_shmop.dll 共享內存函數庫
php_snmp.dll SNMP函數庫
php_soap.dll SOAP函數庫
php_sockets.dll Socket函數庫
php_sybase_ct.dll Sybase函數庫
php_tidy.dll Tidy函數庫
php_tokenizer.dll Tokenizer函數庫
php_w32api.dll W32api函數庫
php_xmlrpc.dll XML-RPC函數庫
php_xslt.dll XSLT函數庫
php_yaz.dll YAZ函數庫
php_zip.dll Zip文件函數庫
php_zlib.dll ZLib壓縮函數庫

C. php soap擴展做webservice的時候 如何傳入數組或者對象參數

SOAP可以傳遞數組和對象,比較復雜不便詳述。你可以在網上查閱SOAP的規范。SOAP的對象需要定義在wsdl里。這就要求java調用方也定義這些對象。

使用SOAP要注意一個問題:SOAP沒有統一的標准,不同語言對SOAP的實現有微小差別,有可能導致不兼容。

編寫SOAP的wsdl是件麻煩而且痛苦的事。你可以試試使用第三方庫。Yii框架就提供一個強大的SOAP解決方案。你可以通過注釋和類,自動生成wsdl。個人不推薦在PHP中使用SOAP,因為PHP不像其他語言類似JAVA、.NET,提供強大的SOAP支持。

你可以考慮輕量級API,也可以考慮XML-RPC。並不比SOAP差,而且很靈活。

望採納,謝謝!

D. PHP如何調用webservice,知道的高手進

SOAP的WebService是可以直接使用的,php有支持SoapClient的,用起來很容易
<?php
$wsdl = "http://192.168.1.2/jaxws/services/test?wsdl";
$client = new SoapClient($wsdl);
$param = array('arg0'=>'arg0','arg1'=>'arg1');
$ret = $client->getUserinfoByID($param);
if ($ret->return){
print_r($ret->return);
}else{
echo 'no user';
}
具體SoapClient需要php的soap支持,看phpinfo里有soap的話就可以了,比如這樣:
soap
Soap Client enabled
Soap Server enabled

Directive Local Value Master Value
soap.wsdl_cache 1 1
soap.wsdl_cache_dir /tmp /tmp
soap.wsdl_cache_enabled 1 1
soap.wsdl_cache_limit 5 5
soap.wsdl_cache_ttl 86400 86400

E. 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畫上勾

閱讀全文

與phpsoapserver參數相關的資料

熱點內容
檢查ip地址及網路連通情況的命令 瀏覽:747
伺服器過期是什麼原因 瀏覽:362
演算法導論第六章 瀏覽:268
msp430單片機編程入門 瀏覽:659
vcfbz壓縮包如何解壓 瀏覽:658
網銀轉賬需要什麼app 瀏覽:438
pythonweb小游戲 瀏覽:51
體彩三場兩關賠率演算法 瀏覽:140
文件管理把相冊刪了怎麼找回安卓 瀏覽:225
億速雲高防伺服器BGP智能專線 瀏覽:884
加密門禁卡寫廠商 瀏覽:457
python調用命令 瀏覽:613
萬能伺服器有什麼作用 瀏覽:426
rust怎麼看什麼地區伺服器 瀏覽:911
福建住宅垃圾壓縮站除臭設備 瀏覽:937
梁衡pdf 瀏覽:991
知道伺服器和密碼如何連接該伺服器 瀏覽:979
編程語言之間的影響力關系 瀏覽:611
虛擬機怎麼能用sudo命令 瀏覽:117
小肚皮app現在叫什麼 瀏覽:221