PHP笔记-PHP中Web Service.

这几天工作需要.net站点免登陆访问PHP的Wiki站点。

PHP不熟,感觉很苦逼。任务下来了,必须搞定。准备用SSO,太麻烦了,要改写别人很多代码,这个是第三方CMS,封装的很厉害,不好改。最后我的解决方案是,采取我有把握的解决方案:

1) .net系统中用户,添加一个角色, WikiAdmin, 授权EPRG系统的外链。有这个角色的用户才能在ePRG系统上看到Wiki的链接。

2) 用户&角色名数据从Wellmed同步到Wiki数据库。[Wiki中需要提供添加用户的接口,手动写web service,.NET通过HTTP Web方式调用Web Service]

3)点击Wiki链接的时候,跳转到.net的页面eTools/Wiki,Controller的代码中去调用Wiki的service, 添加用户到Wiki系统,完成候reuturn view,在view中自动发post请求到wiki登录页面,登录之后,和之前一样,跳转到首页,整个过程用户看不到。

在配置PHP Service时候,花了很多时间。按照网上方法,做这个测试之前,要确认你的php配置文件中已经将soap扩展打开,即extension=php_soap.dll;发现php_soap.dll项目中都没有。要去下载一个可用的,问朋友说,要下载和当前php版本相同的,否则可能不能用。liense中是3.1,可是php官方都没有这个版本,怀疑liense中不代表php版本。最后通过搜索引擎知道Phpinfo();方法可用打印出PHP的环境变量信息,得知我的版本是是5.4.25。

在php.net官方下载php,复制php_soap.dll到\php\ext\文件夹。

修改\php\php.ini添加一行代码,extension=php_soap.dll,支持soap扩展。

写server.php的服务端代码,client端测试调用。成功。

尝试用.net调用。发现php自己调用自己不需要wsdl文件,.net调用必须有wsdl文件。想办法生成wsdl文件。

最后花了很久,用zend studio,参考网上wsdl格式,终于完成了。

发现.net中添加引用方式,也能成功调用。

然后完善具体的UserManager方法。数据保存在.php的源文件中。最后通过以下方法实现。

<?php
class test {
    public function __construct()
    {
    }
    public function updateUser($userName,$pwd,$fullName,$email,$groups)
    {
        $file = ‘conf/users.auth.php‘;
        $content = file_get_contents($file);
        $array = explode("\n", $content);
        $newUserInfo=$userName.‘:‘.md5($pwd).‘:‘.$fullName.‘:‘.$email.‘:‘.$groups;
        $myfile = fopen("conf/users.auth.php", "w") or die("Unable to open file!");
        $isUserExists=false;

        for($i=0; $i<count($array); $i++)
        {
            if(strlen($array[$i])>5)
            {
                //foreach each user info
                $arrUserInfo = explode(":", $array[$i]);
                //user exists, update user;
                $rs=strcasecmp($arrUserInfo[0],$userName);
                if($rs==0)
                {
                    $isUserExists=true;
                    $content=str_replace($array[$i],$newUserInfo,$content);
                    break;
                }
            }
        }
        //not exists, add user, append to last.
        if($isUserExists==false)
        {
            $content=$content."\n".$newUserInfo;
        }
        fwrite($myfile, $content);
        fclose($myfile);
        return "success";
    }
    public function getlist($type)
    {
        $result = array(
            array(‘name‘=>‘Zhangsan‘,‘age‘=>18),
            array(‘name‘=>‘Lisi‘,‘age‘=>20)
        );
        $result = json_encode($result);
        return $result;
    }
}

?>

还需要添加安全认证。

参考资料:http://www.cnblogs.com/mbailing/p/3998821.html

http://www.cnblogs.com/zzxbest/archive/2011/09/21/2184252.html

时间: 2024-08-26 06:59:22

PHP笔记-PHP中Web Service.的相关文章

iOS 中web service数据请求

Web Service也叫XML Web Service WebService是一种可以接收从Internet或者其它系统中传递过来的请求,轻量级的独立的通讯技术. #import <UIKit/UIKit.h> //遵循NSURLConnectionDataDelegate协议 @interface ViewController : UIViewController<NSURLConnectionDataDelegate> //接受从服务器返回的数据 @property(stro

android菜鸟学习笔记28----Android中的Service生命周期及本地和远程服务绑定的实现

Service是Android中长期在后台运行的没有界面的组件,使用服务的优势在于:能够提高进程的优先级,系统不容易回收掉进程,即便回收了,内存充足的时候,会把进程重新创建. 1.服务的简单使用示例: 1.1.定义一个服务: 定义一个服务的方式是定义一个类继承自Service: 1 public class MyService extends Service { 2 3 @Override 4 5 public IBinder onBind(Intent intent) { 6 7 // TOD

.NET基础拾遗(7)Web Service的开发与应用基础

Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开发基础 (7)WebService的开发与应用基础 一.SOAP和Web Service的基本概念 Web Service基于SOAP协议,而SOAP本身符合XML语法规范.虽然.NET为Web Service提供了强大的支持,但了解其基本机制对于程序员来说仍然是必需的. 1.1 神马是SOAP协议?

iphone ios 用xcode4.2开发 访问web service的功能

http://blog.csdn.net/panyaorui/article/details/8622990 1.后台利用 cxf 构建一个web service服务. HelloWorld.java [java] view plaincopy /** * */ package com.alcor.jws.test; import javax.jws.WebMethod; import javax.jws.WebService; import org.apache.cxf.feature.Fea

[转载] 学会使用Web Service上(服务器端访问)~~~

http://www.360doc.com/content/10/0712/12/541242_38461863.shtml# 关于什么是Web Service,相信在很多地方都会有介绍.简单的讲,Web Service就是为Web应用程序之间彼此共享资源提供了一种可能.采取的方式是将相应的类及其中 的方法暴露出来,然后调用者就可以直接调用这些类中的方法,达到访问远程资源的目的.本文只是想告诉,如果去使用Web Service.我主要从服务器端访问Web Service.客户端访问Web Ser

Web Service笔记(五):CXF开发RESTful风格的Web Service

前言: 1.Web Service笔记(五):利用CXF结合Spring开发web service 2.XML学习笔记(三):Jaxb负责xml与javaBean映射 3.jax-rs详解 4.可以使用浏览器的工具调试:如 Firefox 的RESTClient 和chrome的REST Console. 一.配置Spring的配置文件 1.需要引入新的 jar 包. 2.配置 applicationContext-server.xml 文件.使用 jaxrs:server ,记得引入jaxrs

Web Service 笔记-fkjava

========================第一讲======================= WebService概述 ===================================================== Web Service 不是框架,更甚至不是一种技术,而是一种跨平台,跨语言的规范. Web Service实际用途: 1.同一公司的新,旧系统的整合. 2.不同公司的业务整合. 3.内容聚合. CXF Axis(Apache) --> Axis2(Apache)

Android笔记之 Web Service 基础

一.Web Service是什么? 就是网络服务,根据W3C的定义,WebServices(Web服务)是一个用于支持网络间不同机器互操作的软件系统,它是一种自包含.自描述和模块化的应用程序,它可以在网络中被描述.发布和调用,可以将它看作是基于网络的.分布式的模块化组件.  Web Services是建立在通用协议的基础之上的,包括HTTP.SOAP.UDDI.WSDL等.其中Web Service三要素就是SOAP.WSDL和UDDI. SOAP用来描述传递信息的格式, WSDL用来描述如何访

Web Service学习笔记

Web Service概述 Web Service的定义 W3C组织对其的定义例如以下,它是一个软件系统,为了支持跨网络的机器间相互操作交互而设计.Web Service服务通常被定义为一组模块化的API,它们可以通过网络进行调用,来运行远程系统的请求服务. 这里我们从一个程序猿的视角来观察web service.在传统的程序编码中,存在这各种的函数方法调用.通常,我们知道一个程序模块M中的方法A,向其发出调用请求,并传入A方法须要的參数P,方法A运行完毕后,返回处理结果R.这样的函数或方法调用