新工做第三週,作了3年多的.Net,忽然急轉彎作PHP,漂移過彎,速度180邁php
因爲數據的整合,在項目中不得不使用PHP調用WCFhtml
一頭的霧水,網上相關的資料少又少,在phpChina發個帖子,尚未人回,看來博客園纔是永遠的家測試
感謝dudu大神的不厭其煩的回覆幫助,Thanksspa
==========如下是正文===============.net
使用PHP調用WCF很是簡單,全部的過程,只須要兩個字,仔細code
1、準備工做:htm
1.soap.dllblog
查看PHP安裝包裏面的ext 是否有 php_soap.dll [PHP自動集成的,通常狀況下都會存在,不存在能夠在網上下載]開發
2.修改php.ini文件博客
第一步確認後,繼續找到PHP的配置文件。因爲每一個人的環境不一樣,好比有的是使用集成開發環境,一鍵安裝
有的同窗是本身分別安裝,可能php.ini的位置會不一樣。此時的作法是使用 phpinfo()進行查看
找到文件後,打開文件,
查找到
;extension=php_soap.dll
這一行,而後將前面的分號去掉。
若是沒有找到這一行,不用擔憂,本身手動添加這一行也能夠.
3.重啓apach
2、調用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 '<br>';
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);
echo $result->GetDataResult;
echo '<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