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
PHP调用WCF小结的更多相关文章
- [转]学习 WCF (6)--学习调用WCF服务的各种方法
转自:http://www.cnblogs.com/gaoweipeng/archive/2009/07/26/1528263.html 作者这篇博文写得很全面. 根据不同的情况,我们可以用不同的方法 ...
- Java与WCF交互(一):Java客户端调用WCF服务
最近开始了解WCF,写了个最简单的Helloworld,想通过java客户端实现通信.没想到以我的基础,居然花了整整两天(当然是工作以外的时间,呵呵),整个过程大费周折,特写下此文,以供有需要的朋友参 ...
- Java与WCF交互(一):Java客户端调用WCF服务 【转】
原文:http://www.cnblogs.com/downmoon/archive/2010/08/24/1807161.html 最近开始了解WCF,写了个最简单的Helloworld,想通过ja ...
- 转载——Java与WCF交互(一):Java客户端调用WCF服务
最近开始了解WCF,写了个最简单的Helloworld,想通过java客户端实现通信.没想到以我的基础,居然花了整整两天(当然是工作以外的时间,呵呵),整个过程大费周折,特写下此文,以供有需要的朋友参 ...
- 【Win 10应用开发】手动调用WCF服务
调用服务最简单的方法就是,直接在VS里面添加服务引用,输入服务的地址即可,无论是普通Web服务,还是WCF服务均可.VS会根据获取到的元数据,自动生成客户端代码. 如果服务的调用量很大,应用广泛,可以 ...
- 【原创经验分享】JQuery(Ajax)调用WCF服务
最近在学习这个WCF,由于刚开始学 不久,发现网上的一些WCF教程都比较简单,感觉功能跟WebService没什么特别大的区别,但是看网上的介绍,就说WCF比WebService牛逼多少多少,反正我刚 ...
- c# 动态调用WCF方法笔记!
//动态调用wcf方法 string url = "http://localhost:54379/ServiceWCF.svc"; IDoubleService proxy = W ...
- ajax内调用WCF服务
WCF可以当作WebService一样被调用,在html内通过ajax调用WCF服务的方法如下: 1.新建一个WCF服务的网站项目: 2.在项目内增加一个新项:启用了ajax的WCF服务: 3.在对应 ...
- 用JavaScript调用WCF Service
原创地址:http://www.cnblogs.com/jfzhu/p/4039604.html 转载请注明出处 前面介绍过<Step by Step 创建一个WCF Service>和& ...
随机推荐
- JSTL学习笔记(核心标签)
一.JSTL标签分类: 核心标签 格式化标签 SQL标签 XML标签 JSTL函数 二.核心标签 引用方式:<%@ taglib prefix="c" uri=& ...
- echarts演示笔记
http://echarts.baidu.com/doc/start.html 1.新建一个echarts.html文件,为ECharts准备一个具备大小(宽高)的Dom. <!DOCTYPE ...
- ASP.NET内核几大对象、ASP.NET核心知识(7)--转载
本文的学习流程是这样安排的. 一个简单的GDI小案例 1.说明 如果你想思考如何生成验证码,那么您第一个要解决的问题,一定是.NET动态生成图片问题. //GDI:.Net程序中进行绘图的一些类. 2 ...
- 关于select元素的一些基本知识
为select元素绑定值的几个方法: 一.通过字符串拼接,让后追加到select元素下, 二.通过DOM创建option元素,为其绑上value值和文本: function loadProvinve( ...
- html链接
1. <a href="/index.html">本文本</a> 是一个指向本网站中的一个页面的链接.</p><p><a hr ...
- 常用网站--前端开发类+网页设计类+平面素材类+flash类
前端开发类 animate CSS 前端开发网 我爱CSS 大家网 W3School jQuery开发技术详解教程视频 jQuery中文社区 jQueryChina 网页设计类 禅意花园 CSS Do ...
- GDI 开发的准备工作
1 需要的链接库和头文件 大部分函数在 Gdi.dll 和 Gdi32.dll 提供.相关的函数接口和结构都在 Wingdi.h 文件中(如果工程中已包含 Windows.h 就不需要再包含了,因为 ...
- Wordpress更换主题之后出错
今天吃完午饭,休息休息,最近搞了一下google adsense,不过最终的审核没通过,我想会不会是界面不好看呢,饭后就在电脑旁,更换了几个wordpress主题,我的博客使用wordpress搭建的 ...
- 秒(s) 毫秒(ms) 微秒(μs) 纳秒(ns) 皮秒(ps)及Java获得 .
Date date=new Date(); long hm=date.getTime(); //获取毫秒 或者 毫秒级:System.currentTimeMillis() 纳秒级: System.n ...
- [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, ...