zoukankan      html  css  js  c++  java
  • PHP调用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

  • 相关阅读:
    [转]Android 应用性能调试
    [书目20120110]项目管理:计划、进度和控制的系统方法 哈罗德·科兹纳博士所著
    [转]Android数据存储SharedPreferences的使用
    [转]八款开源 Android 游戏引擎
    图书 beginningandroidgames 源码
    [转]Android中在SurfaceView上高效绘图
    [转] Himi 著作《Android游戏编程之从零开始》★书籍源码+第4/6/7样章—>免费下载★
    [转]AndroidAlarmManager(全局定时器/闹钟)指定时长或以周期形式执行某项操作
    android open source game frozenbubble
    [转]eclipse/myeclipse注释模板的修改
  • 原文地址:https://www.cnblogs.com/LionelMessi/p/4436020.html
Copyright © 2011-2022 走看看