WSF/PHP调用带有WS-Security支持的Web Service时的注意事项
1、WSF/PHP【WSO2 Web Services Framework for PHP】 是WSO2.ORG提供的专门针对PHP调用Web Service的一个优秀框架,使用非常简单;但是WSO2不仅仅提供针对PHP的ws框架,而且还对其他很多中语言提供开发框架,比如基于Spring、Perl、Ruby……,除此之外还提供很多其他框架和培训服务,具体可查询wso2.org和wso2.com;
2、WSF/PHP模块的安装需要很多其他的支持包,在windows下面体现为一些dll文件,主要包括Libxml2、iconv、Openssl、zlib,而不仅仅是Libxml2【GNOME XML Library】;安装过程中需要将这些依赖dll全部都集中到wsf_c/lib/目录中;这些依赖包可以到http://www.zlatkovic.com/pub/libxml/下载,下载完成之后对各压缩包解压,dll文件一般位于/bin/目录中;
3、WSF所依赖的这些dll文件一定需要copy到/windows/system32/中才行,否则加载模块不成功;这点和官方文档中说的直接将wsf_c/lib/加入到path中即可是不一致的;当然这点可能有其他方式可以解决,因为我不精通PHP,但是和一些同事沟通过,但没结果;
4、验证是否正常加载了WSF模块,只用php -m命令查看列表是不够的,即时WSF模块没有加载成功,但是php.ini中设置了WSF模块,那php -m的列表中也会包括WSF;最保险的做法是查看服务器日志比如Apache;
5、在申明WSSecurityToken实例的时候,参数receiverCertificate是用来加密Soap消息的,而不是用来验证服务端返回的签名信息的,所以若只是需要签名,那该参数无需设置;WSF/PHP目前还没有提供验证服务端返回的签名信息功能的;
6、WSF/PHP调用WS时默认使用SOAP 1.2协议,这可能会对某些服务端ws调用时出错,若需要设置使用SOAP版本,则可以在申请WSClient实例时设置参数"useSOAP" => "1.1"实现;
PHP 尽管提供了大量有用的函数,但是在特殊情况下还可能需要进行扩展编程,比如大量的 PECL(PHP Extension Community Library)就是以扩展的形式提供的(动态链接库dll文件),它们比 PEAR 的运行效率要高很多。
PHP 扩展是用 C 或 C++ 编写的,需要编译成动态连接库 dll 文件后在 PHP 环境下注册后才能使用。
编写 PHP 扩展的软件要求:
VC++6.0 或 VC++.NET 环境。
PHP 的源代码,需要编译。
如果不愿意编译 PHP 的源代码,可以再下载 PHP 的已经编译成功的二进制代码(就是我们部署 PHP 运行环境的那些文件包)。注意分别下载的源文件包和已编译包,它们的版本必须一致。
过程:
1,安装 VC++6.0,并选择把其可执行文件路径加入环境变量中,使在命令行环境任意路径下可以运行编译器。
2,安装 PHP 运行环境,并与 IIS 正确集成在一起。假设使用的 PHP 版本为 5.2.5,下载 php-5.2.5-Win32.zip 二进制包和 php-5.2.5.tar.gz 源代码包。安装环境为 C:php-5.2.5-Win32。分别把源代码包和二进制包解压到该文件夹下。从 php.ini-recommended 拷贝生成一个 php.ini 文件。
3,建立 C:php-5.2.5-Win32Release_TS 文件夹,拷贝 C:php-5.2.5-Win32devphp5ts.lib 文件到这里。
4,进入 C:php-5.2.5-Win32ext 文件夹,运行命令:
C:php-5.2.5-Win32ext>..php.exe ext_skel_win32.php --extname=myphpext
Creating directory myphpext
Creating basic files: config.m4 config.w32 .cvsignore myphpext.c php_myphpext.h
CREDITS EXPERIMENTAL tests/001.phpt myphpext.php [done].
To use your new extension, you will have to execute the following steps:
1. $ cd ..
2. $ vi ext/myphpext/config.m4
3. $ ./buildconf
4. $ ./configure --[with|enable]-myphpext
5. $ make
6. $ ./php -f ext/myphpext/myphpext.php
7. $ vi ext/myphpext/myphpext.c
8. $ make
Repeat steps 3-6 until you are satisfied with ext/myphpext/config.m4 and
step 6 confirms that your module is compiled into PHP. Then, start writing
code and repeat the last two steps as often as necessary.
所需软件:
Apache2.2.8 PHP 5.2.5 Mysql 5.0
************************
1. 安装 Apache
(安装包格式)
在 Network Domain 和 Server Name 里填入 127.0.0.1,右下角可以控制 Apache 服务器的启动与关闭。安装好后,在浏览器里输入 http://localhost/,如果出现 It works!" 字样,则说明安装成功了!
2. 安装 PHP
(解压包格式)
解压文件到 C:PHP 下
3. 安装 Mysql
(解压包格式)
解压文件到 C:mysql 下,从命令提示符里进入到 bin 目录下,执行 "mysql-nt -install" 进行安装,安装成功后,会显示 "Service successfully installed." 然后启动服务 "net start mysql",最后更改管理密码 "mysqladmin -u root -p password <new password>",会提示输入旧密码,由于原来没有设置过密码,所以直接回车。
其它相关命令:
mysqld-nt -remove 卸载服务
net stop mysql 停止服务
4. 软件配置
首先停止 Apache 服务,然后用记事本打开 C:pacheconfhttpd.conf 文件,找到 "#LoadModule ssl_module modules/mod_ssl.so",在它下面添加 "LoadModule php5_module c:/php/php5apache2_2.dll"。然后找到 "AddType application/x-gzip .gz .tgz",在下面添加 "AddType application/x-httpd-php .php"。
在 C:php 目录下找到 php.ini-dist 和 php5ts.dll 文件,把 php.ini-dist 复制到 Windows 目录下,并且重命名为 php.ini,用记事本打开找到 "extension=php_mysql.dll",去掉前面的分号。把 php5ts.dll 复制到 system32 目录里,并且把 C:phpext 目录下的 php_mysql.dll 文件复制到 Windows 文件夹下。
5. 配置网站
再次修改 httpd.conf,找到 "DocumentRoot "C:/Apache/htdocs" "、"<Directory "C:/Apache/htdocs">"、"DirectoryIndex Index.hrml",然后做相应修改即可!
6. 搭建完毕
启动 Apache 服务,配置完成!
得到PHP中最后一个字符
$str = " JhlIsHero ";
$var = trim($str);
$len = strlen($var)-1;
echo $var{$len};
?>
得到PHP一个字符串的最后一个字符
内容摘要:RSS 聚合最近非常流行,因此至少对 RSS 及其工作方式有所了解是一名 PHP 开发人员的迫切需要。本文介绍了 RSS 基础知识、RSS 众多用途中的一些用途、如何使用 PHP 从数据库创建 RSS 提要,以及如何使用 XML_RSS 模块读取现有 RSS 提要并将其转换为 HTML。
什么?您没听说过 RSS?
RSS 聚合是最常见的 TLA(三字母缩写词)之一。RSS 作为缩写词具有多种含义,但是当前的标准含义是:真正简单的聚合。这是对这一极为常见、极为有用的标准的最新解释。
回想 Internet 早期,一个称为 Pointcast 的软件将数据 推送 到用户计算机上的屏幕保护应用程序上,来提供各种新闻更新。最终,浏览器开发商(例如 Netscape 和 Microsoft)创建了类似这种非常流行的服务的东西。Netscape 开发了接受程度最高的变体,此变体后来被发布到 Internet 开发环境中,并最终发展成了现在的 RSS。
RSS 将最近更新的信息分发给许多接收者,非常类似广播系统。如果您拥有大量的用户,那么 RSS 提要就像灯塔一样吸引您的用户回来查看更新。因为 RSS 提供了一种急需的维持用户注意力的方法,所以 RSS 越来越流行并为越来越多的内容提供者所使用就没什么好奇怪的了。
当您看到图 1 中所示的图标时,您就可以确定此站点提供 RSS 提要。事实上,此图标是表示一个站点针对内容更新提供 RSS 服务的标准图标。图标中的曲线代表无线电波,象征着 RSS 提要的广播本质。
图 1. RSS 标准图标
RSS 应用程序
相当多的应用程序(其中许多是免费的)能够阅读 RSS 提要,其中许多允许用户聚合提要。聚合特性甚至允许用户进一步改进所收到内容的数量和性质。每种阅读器都拥有不同的特性,旨在帮助管理来自 Internet 的难以置信的信息量。
Mozilla 公司的 Thunderbird 和 Firefox、Microsoft 公司的 Internet Explorer 7 和即将推出的 Office 版本以及许多其他产品是最接近您的搜索引擎的一些例子。在这么多种获取和阅读提要的方法中,您应该可以找到适合您的方法。当然,除非您是一位眼光挑剔的软件开发人员,希望编写您自己的程序!本文马上就要对此进行介绍!
我如何使用 RSS?
您的站点包含您希望公布给大众的内容,这是您将内容发布到 Internet 的首要原因。如果很多用户知道您的站点和内容,他们会每天回来查看更新吗?恐怕不会。在您经常访问的站点中,您会每天访问它们来检查更新吗?恐怕不会。这就是 RSS 产生的原因。
对于您的用户来说,RSS 可能是一个巨大的获益,当他们认为您的站点上列出的观点或新闻有价值时尤其如此。用户无需频繁返回您的站点,即可准确了解您进行的更新或添加的内容,从而使用户能够节省时间和精力,同时也不会错过任何更新!
如果您整合 RSS 提要来支持您自己站点的内容聚合,那么生成内容不是问题。如果您从提要中拉出数据并将其包括在您的站点中,那么只需很少的时间投资就能为您的站点添加大量的内容。
相关文章
- 这篇文章主要介绍了c# 三种方法调用WebService接口的相关资料,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-07
C#使用Http Post方式传递Json数据字符串调用Web Service
这篇文章主要为大家详细介绍了C#使用Http Post方式传递Json数据字符串调用Web Service,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25总结android studio注意事项及打不开等问题解决方法
经过一段时间的使用,总结了android studio打不开等问题的6种解决方法及android studio注意事项,希望对大家有所帮助。 1 首次运行,建立好项目需要下载一些东西,如果...2016-09-20- 这篇文章介绍了c#动态调用Webservice的两种方法实例,有需要的朋友可以参考一下...2020-06-25
- 这篇文章主要给大家介绍了关于c#中的WebService及其调用方式的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
- 本文章来给大家详细介绍在php中如何来调用执行mysql存储过程然后返回由存储过程返回的值了,有需要了解的同学可进入参考。 。调用存储过程的方法。 a。如果存储过...2016-11-25
DTO 实现 service 和 controller 之间值传递的操作
这篇文章主要介绍了DTO 实现 service 和 controller 之间值传递的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-22- 方法一:直接调用复制代码 代码如下:<? /******************************************************************************/ /* 文件名 : soapclient.php /* 说 明 : WebService接口客户端例程 /****************...2014-06-07
- 这篇文章主要为大家详细介绍了C# 创建、部署和调用WebService的简单示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
- 下面小编就为大家带来一篇C# Soap调WebService的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-06-25
- 今天小编在这里就来给Illustrator的这一款软件的使用者们来说一说文字转曲的操作方法以及注意事项,各位想知道具体信息的使用者们,那么下面就快来跟着小编一起看看吧。...2016-09-14
- 这篇文章主要介绍了c#动态改变webservice的url访问地址,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了Spring boot 无法注入service问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-10-09
- 这篇文章主要介绍了WebService 的简单封装接口调用方法,主要是通过简单的sql语句来查询数据库,从而返回dataset,十分简单实用,有需要的小伙伴可以参考下。...2020-06-25
- 这篇文章主要介绍了JAVA调用SAP WEBSERVICE服务实现流程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-10-11
- c#编写webservice服务引用实例分享,大家参考使用吧...2020-06-25
- 首先用c#创建一个web service,主要是利用其WSDL的功能,当然也可以利用php创建一个,道理都是一样的...2020-06-25
- C#调用和实现WebService,纯手工打造! 需要的朋友可以参考一下...2020-06-25
系统找不到指定的文件 No installed service named "Apache2"
我们有时会发现apache会出现,系统找不到指定的文件 No installed service named "Apache2" 安装Apache问题:系统找不到指定的文件 No installed service named "Apa...2016-09-14- 本文主要用详细的图文给大家介绍C#创建、部署、调用WebService的全部过程以及中间需要避免的问题。...2020-06-25