首頁 >後端開發 >php教程 >PHP調用WCF小結

PHP調用WCF小結

WBOY
WBOY原創
2016-08-08 09:25:42860瀏覽

新工作第三週,做了3年多的.Net,突然急轉彎做PHP,漂移過彎,速度180邁

由於資料的整合,在專案中不得不使用PHP呼叫WCF

一頭的霧水,網上相關的資料少又少,在phpChina發個帖子,還沒有人回,看來博客園才是永遠的家

感謝dudu大神的不厭其煩的回覆幫助,Thanks

==========以下是正文===============

使用PHP呼叫WCF非常簡單,所有的過程,只需要兩個字,仔細

一、準備工作:

1.soap.dll

查看PHP安裝包裡面的ext 是否有 php_soap.dll [PHP自動整合的,一般情況下都會存在,不存在可以在網上下載]

2.修改php.ini檔案

第一步確認後,繼續找到PHP的設定檔。由於每個人的環境不同,例如有的是使用整合開發環境,一鍵安裝

有的同學是自己分別安裝,可能php.ini的位置會不同。此時的做法是使用 phpinfo()進行檢視

找到文件後,打開文件,

查找到 

;extension=php_soap.dll

這一行,然後將前面的分號去掉。

如果沒有找到這一行,不用擔心,自己手動添加這一行也可以.

3.重啟apach

二、呼叫WCF

以上123步驟完成後,我們的準備工作就完成了,接下來就是寫程式碼

假設大家都會WCF,都有PHP的基礎

1.發布一個WCF以備調用

下面是WCF的兩個方法

public string SayHello()
{
return "Hello World";
}

public string GetData(string value)
{
         return "You entered is : " + value;
}

2.PHP端呼叫

$wcfURL = 'http://192.168.3.102/Service1.svc?wsdl';//【這是WCF的位址】
$wcfClient = new SoapClient ( $wcfURL );

$result1 = $wcfClient->SayHello ();
print_r ( $result1 );

echo '
';
echo $result1->SayHelloResult;//這裡是SayHello+Result合在一起寫,具體原因我不知道

以上PHP程式碼正常情況下應該輸出如下

stdClass Object ( [SayHelloResult] => Hello World )

Hello World

第一個方法就呼叫成功了

我們繼續呼叫有參數的方法

這個時候一定要用WCF測試客戶端來測試WCF

看到我一開始的WCF的方法,參數是 GetData(string value),而這裡顯示t,這是因為在WCF是同事幫我寫的,他偷懶,直接在定義的時候寫的 GetData(string t )。為了這個偷懶,付出了沉重的程式碼,整整10分鐘!

詳情連結:http://q.cnblogs.com/q/71331/

以下是修改後的PHP程式碼

$args = array('t' => '312');
$wcfClient->GetData($args);<br>echo $result->GetDataResult;<br>echo '<br>';<br>print_r ( $result );

以上正常輸出應該是

You entered is :312 
stdClass Object ( [GetDataResult] => You entered is : 312) 

以上就完成了PHP對WCF的呼叫了,當然,有些小夥伴會問高級一點的呢,比如整個類什麼的作為參數,返回個類什麼的............. ....弱弱的說,還沒玩到那麼高級的..

再次謝謝dudu

以下為參考文章:http://blog.csdn.net/love__coder/article/details/6067611

http://www.cnblogs.com/tianbang/archive/2012/05/07/2489149.html

以上就介紹了PHP呼叫WCF小結,包含了面向的內容,希望對PHP教學有興趣的朋友有幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:Apache下載下一篇:Apache下載