程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP調用WCF小結,調用wcf小結

PHP調用WCF小結,調用wcf小結

編輯:關於PHP編程

PHP調用WCF小結,調用wcf小結


新工作第三周,做了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 '<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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved