PHP SOAP 扩展详解
PHP SOAP 扩展
SOAP 的全称为简单对象访问协议 (Simple Object Access Protocol)。它是一种基于 XML 的,可扩展的通信协议。SOAP 提供了一种标准,使得运行在不同平台上并使用不同的编程语言编写的应用程序可以互相进行通信。SOAP 的可扩展性和平台无关性使得它被广泛用作 Web 服务的通信协议。
由于 Java 语言提供了对 SOAP 的良好支持,通常基于 Web 服务的应用程序使用 Java 语言编写。对于广大的 PHP 程序员来说,可能会有一点小小的不满 – PHP 的较早版本根本没有对 SOAP 的直接支持,只能通过 PEAR(the PHP Extension and Application Repository) 中的 SOAP 库或者第三方产品 NuSOAP 来开发 Web 服务。不过最近的版本已经改变了这一状况。自 PHP 5 开始新增了内置的 SOAP 扩展 (ext/soap),从此我们不需要下载额外的扩展库或是代码包来开发基于 SOAP 的应用程序了。接下来让我们来看看 SOAP 扩展中都有哪些内容。
PHP 5 中的 SOAP 扩展 (ext/soap)PHP 5 最早发布的版本 5.0.0 中就已经提供了 SOAP 扩展,不过当时的 PHP 手册中声明这个扩展是试验性 (experimental) 的。实际上当时的版本已经实现了比较完善的功能,也没有必要为此而担心。目前这个扩展还在不断地完善,早期版本中的大部分 bug 都已经得到了修正,目前最新的版本 (5.3.0) 中已经提供了比较完整的对 SOAP 的支持,而且我们有理由相信,以后的版本还会更好。
SOAP 扩展库结构
ext/soap 中包括六个预定义的类,通过这些类,我们可以创建 Web 服务端 (SoapServer 类 ),客户端 (SoapClient 类 ),处理 SOAP 请求和应答 (SoapHeader, SoapParam, SoapVar 类 ),诊断错误 (SoapFault 类 )。这些类之间的联系如图 1 所示:
图 1. SOAP 扩展的结构
SOAP 服务类 SoapServer
SoapServer 类用来开发 Web 服务端应用程序。这个类中包含创建,设置和操纵 Web 服务的函数。有两种方式可以向 Web 服务中添加操作 (Operation)。一种方式是直接添加已定义的函数,另一种方式是添加已定义好的类,从而将该类的公有成员函数添加到 Web 服务中。
另一个需要说明的特性是,PHP 支持两种 Web 服务的模式:WSDL 模式和 non-WSDL 模式,为了便于理解,我们首先从 Web 服务的两种实现模式开始说起。
PHP 中 Web 服务的两种模式:WSDL 模式和 non-WSDL 模式
对于 Web 服务来说,主要有两种实现模式 – 契约先行 (Contract First) 模式和代码先行 (Code Fist) 模式。
契约先行模式的
相关文档:
GD库是PHP进行图象操作一个很强大的库。
先在php.ini里增加一行引用:extension=php_gd2.dll
重启apache。做一个测试页 var_dump(gd_info());输出数据表明GD库引用成功。
表单auth.html
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
< ......
http://www.521000.com/bbs/dispbbs.asp?BoardID=9&ID=1236357
PHP环境搭建
Apache的安装与配置
一、Apache的安装
1.从Apache的官方网站下载安装软件:http://httpd.apache.org/download.cgi,目前的最新版本是apache_2.2.11-win32-x86-no_ssl.msi。
2.打开我的电脑,进入D盘,在其下新建一个文件夹,名为 loca ......
因为最近做一个DIY的设计器,需要让用户选择某个字体,并且支持旋转,拖拉等操作。直接使用文本框是不行的,因为flex不支持字体的直接旋转,大家可以尝试一下,如果选择了text控件,文字就看不到了,有个办法是把文字embed嵌入到swf中去,这样就支持了。
但是英文还好,字体文件不大,中文的话动辄几个M,这个做法很不现实 ......
php邮件读取:
程序开发的思路:mail文件:先连接到pop3,读取用户的邮件列表,判断邮件是否读取过,如果没读取过就把邮件加到中转的数据库中。get_mail()函数,读取数据库中的邮件列表,读完后对数据库进行清除。以便能一直读取的都是新的邮件。
代码程序:mail文件:
header("content-type:text/html; charset=utf-8 ......
<?php
header("content-type:text/html; charset=UTF-8");
/*
* record kid words and insert into database
* user by sending email to publication kid words
*
*/
include 'POP3.php';
include 'email_class.php';
include 'Mail_mimeDecode.php';
//include 'include/compatible ......