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

PHP调用WCF小结的更多相关文章

  1. [转]学习 WCF (6)--学习调用WCF服务的各种方法

    转自:http://www.cnblogs.com/gaoweipeng/archive/2009/07/26/1528263.html 作者这篇博文写得很全面. 根据不同的情况,我们可以用不同的方法 ...

  2. Java与WCF交互(一):Java客户端调用WCF服务

    最近开始了解WCF,写了个最简单的Helloworld,想通过java客户端实现通信.没想到以我的基础,居然花了整整两天(当然是工作以外的时间,呵呵),整个过程大费周折,特写下此文,以供有需要的朋友参 ...

  3. Java与WCF交互(一):Java客户端调用WCF服务 【转】

    原文:http://www.cnblogs.com/downmoon/archive/2010/08/24/1807161.html 最近开始了解WCF,写了个最简单的Helloworld,想通过ja ...

  4. 转载——Java与WCF交互(一):Java客户端调用WCF服务

    最近开始了解WCF,写了个最简单的Helloworld,想通过java客户端实现通信.没想到以我的基础,居然花了整整两天(当然是工作以外的时间,呵呵),整个过程大费周折,特写下此文,以供有需要的朋友参 ...

  5. 【Win 10应用开发】手动调用WCF服务

    调用服务最简单的方法就是,直接在VS里面添加服务引用,输入服务的地址即可,无论是普通Web服务,还是WCF服务均可.VS会根据获取到的元数据,自动生成客户端代码. 如果服务的调用量很大,应用广泛,可以 ...

  6. 【原创经验分享】JQuery(Ajax)调用WCF服务

    最近在学习这个WCF,由于刚开始学 不久,发现网上的一些WCF教程都比较简单,感觉功能跟WebService没什么特别大的区别,但是看网上的介绍,就说WCF比WebService牛逼多少多少,反正我刚 ...

  7. c# 动态调用WCF方法笔记!

    //动态调用wcf方法 string url = "http://localhost:54379/ServiceWCF.svc"; IDoubleService proxy = W ...

  8. ajax内调用WCF服务

    WCF可以当作WebService一样被调用,在html内通过ajax调用WCF服务的方法如下: 1.新建一个WCF服务的网站项目: 2.在项目内增加一个新项:启用了ajax的WCF服务: 3.在对应 ...

  9. 用JavaScript调用WCF Service

    原创地址:http://www.cnblogs.com/jfzhu/p/4039604.html 转载请注明出处 前面介绍过<Step by Step 创建一个WCF Service>和& ...

随机推荐

  1. JSTL学习笔记(核心标签)

    一.JSTL标签分类: 核心标签 格式化标签 SQL标签 XML标签 JSTL函数 二.核心标签       引用方式:<%@ taglib prefix="c" uri=& ...

  2. echarts演示笔记

    http://echarts.baidu.com/doc/start.html 1.新建一个echarts.html文件,为ECharts准备一个具备大小(宽高)的Dom. <!DOCTYPE ...

  3. ASP.NET内核几大对象、ASP.NET核心知识(7)--转载

    本文的学习流程是这样安排的. 一个简单的GDI小案例 1.说明 如果你想思考如何生成验证码,那么您第一个要解决的问题,一定是.NET动态生成图片问题. //GDI:.Net程序中进行绘图的一些类. 2 ...

  4. 关于select元素的一些基本知识

    为select元素绑定值的几个方法: 一.通过字符串拼接,让后追加到select元素下, 二.通过DOM创建option元素,为其绑上value值和文本: function loadProvinve( ...

  5. html链接

    1. <a href="/index.html">本文本</a> 是一个指向本网站中的一个页面的链接.</p><p><a hr ...

  6. 常用网站--前端开发类+网页设计类+平面素材类+flash类

    前端开发类 animate CSS 前端开发网 我爱CSS 大家网 W3School jQuery开发技术详解教程视频 jQuery中文社区 jQueryChina 网页设计类 禅意花园 CSS Do ...

  7. GDI 开发的准备工作

    1 需要的链接库和头文件 大部分函数在 Gdi.dll 和 Gdi32.dll 提供.相关的函数接口和结构都在 Wingdi.h 文件中(如果工程中已包含 Windows.h 就不需要再包含了,因为 ...

  8. Wordpress更换主题之后出错

    今天吃完午饭,休息休息,最近搞了一下google adsense,不过最终的审核没通过,我想会不会是界面不好看呢,饭后就在电脑旁,更换了几个wordpress主题,我的博客使用wordpress搭建的 ...

  9. 秒(s) 毫秒(ms) 微秒(μs) 纳秒(ns) 皮秒(ps)及Java获得 .

    Date date=new Date(); long hm=date.getTime(); //获取毫秒 或者 毫秒级:System.currentTimeMillis() 纳秒级: System.n ...

  10. [Head First Python]5. 推导数据:处理数据

    读取4个文件内容,格式化数据,升序,显示每个文件前3个数据 julie.txt 2.59,2.11,2:11,2:23,3-10,2-23,3:10,3.21,3-21 james.txt 2-34, ...