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>和& ...
随机推荐
- 阻止IOS自动识别页面上的电话号码、email地址
之前写页面的时候碰到一个很恶心的情况,在6P上数字自动变色,后来找了一些资料: 在iOS的浏览器上,他们有时候会有一些“自作聪明”,自动把页面上的一串数字识别成电话号码,这样用户不小心点击这串数字,就 ...
- 两个listbox 无刷新互动
页面代码: <table border="0" cellpadding="0" cellspacing="0" style=" ...
- Java Timer触发定时器
XML: <!-- Java Timer定时 --> <!-- <bean id="shortUrlTask" class=" com.sprin ...
- js 之 Post发送请求
// ajax 对象 function ajaxObject() { var xmlHttp; try { // Firefox, Opera 8.0+, Safari xmlHttp = new X ...
- jxl读和取Excel文件
请参看下面链接: jxl如何读和取excle中的数据
- Log4Net 的简要配置
引用log4net.dll AssemblyInfo.cs中 [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyF ...
- Bootstrap3 formテキストフィールド横幅の指定の仕方
Bootstrap3を使ってて.フォームの横幅を変えたいなって時ありませんか??Bootstrap3のフォームの横幅のデフォルトはwidth:100%で設定されています.ですので.普通にフォームを使用 ...
- Web程序工作原理
1.Web程序工作原理 (1)Web一词的含义 Network:[计算机]电脑网络,网 Web:[计算机]万维网(World Wide Web),互联网(Internet) Web程序,顾名思义,即工 ...
- Measuring Lengths in Baden
Description Measuring Lengths in Baden time limit per test: 2 seconds memory limit per test: 256 meg ...
- 手机天猫nba项目总结
页面逻辑: 技术统计 比赛竞猜 猜你喜欢 进入页面时,获取服务器的当前时间.然后进行页面上的每秒递增.1.每隔n秒向后台发送请求,获取最新比分信息,球队图像,球员信息.然后更改页面.2.每隔n秒向后台 ...