php中四种webservice实现的简单方法
一:PHP本身的SOAP 所有的webservice都包括服务端(server)和客户端(client)。 要使用php本身的soap首先要把该拓展安装好并且启用。下面看具体的code 首先这是服务端实现: PHP Code 复制内容到剪贴板 ?php class test { function show() { return 'theda
一:PHP本身的SOAP
所有的webservice都包括服务端(server)和客户端(client)。
要使用php本身的soap首先要把该拓展安装好并且启用。下面看具体的code
首先这是服务端实现:
PHP Code复制内容到剪贴板
- class test
- {
- function show()
- {
- return 'the data you request!';
- }
- }
- function getUserInfo($name)
- {
- return 'fbbin';
- }
- //实例化的参数手册上面有,这个是没有使用wsdl的,所以第一个参数为null,如果有使用wsdl,那么第一个参数就是这个wsdl文件的地址。
- $server = new SoapServer(null, array('uri' ='http://soap/','location'='http://localhost/test/server.php'));
- $server->setClass('test');
- //$server->addFunction('getUserInfo');
- $server->handle();
- ?>
PHP Code复制内容到剪贴板
- $soap = new SoapClient(null, array('location'='http://localhost/test/server.php','uri' ='http://soap/'));
- echo $soap->show();
- //得到:'the data you request!'
- //echo $soap->getUserInfo('sss');
////////////////////////////////////////////////////////////////////////////////
二:PHPRPC
首先到官网(http://www.phprpc.org/zh_CN/ )上面去下载最新版的phprpc,解压之后会有相关的文件,我们把文件进行划分(服务端和客户端文件)如下:
服务端文件:
PHP Code复制内容到剪贴板
- dhparams
- dhparams.php
- phprpc_server.php
- bigint.php
- compat.php
- phprpc_date.php
- xxtea.php
PHP Code复制内容到剪贴板
- phprpc_client.php
- bigint.php
- compat.php
- phprpc_date.php
- xxtea.php
server端:
PHP Code复制内容到剪贴板
- include_once"phprpc_server.php"; //加载phprpc文件
- $server = new PHPRPC_Server();
- $server->add('getUser');
- $server->setDebugMode(true);
- $server->start();
- function getUser( )
- {
- return ‘the data you request!’;
- }
- client端:
- [code]
- include_once "phprpc_client.php";
- $client = new PHPRPC_Client('http://127.0.0.1/phpservice/phprpcserver/server.php');
- $data = $client->getUser();
- var_dump($data);
- //得到:the data you request!
////////////////////////////////////////////////////////////////////////////////
三:开源的NUSOAP
首先到网上去下载最新版的nusoap,现在的最新版本是0.9.5的,解压之后会得到一个lib文件夹,把这个文件分别放到服务端和客户端各一份,然后再服务端和客户端分别建立server.php和client.php文件,作为通信文件。
服务端文件如下:
PHP Code复制内容到剪贴板
- ini_set("soap.wsdl_cache_enabled", 0);//关闭缓存
- require_once("lib/nusoap.php"); //加载nusoap文件
- $server = new soap_server;
- $server->configureWSDL('nusoasp');//设定服务的名称,使用的wsdl来通信,如果不适用wsdl将会更简单,网上有很多的例子
- $server->register('getUserInfo', array('name'="xsd:string", 'email'="xsd:string"), array('return'="xsd:string"));
- $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
- $server->service( $HTTP_RAW_POST_DATA );
- function getUserInfo($name, $email)
- {
- return ‘the data you request!’;
- }
客户端文件如下:
PHP Code复制内容到剪贴板
- require_once("lib/nusoap.php");
- $client = new soapclient('http://localhost/phpservice/nusoapserver/server.php?wsdl');
- $pagram = array('fbbin', 'fbbin@foxmail.com');
- $string = $client->call('getUserInfo', $pagram);
- //得到:the data you request!
四:HessianPHP
hessian其实我个人认为他不是一个webservice,只能说是类似而已。因为它不具备webservice的那些特性。它支持的语言比较多我们现在只需要研究php版本的HessianPHP就行了,下载最新版本是v2.0.3的,解压之后会得到一个src的目录,这个目录使我们需要使用的一个核心文件夹。
我们把名字重命名为HessianPHP然后分别分别放到server和client端,然后分别建立server.php和client.php文件。
server端:
PHP Code复制内容到剪贴板
- include_once 'HessianPHP/HessianService.php';//加载核心文件
- class TestService
- {
- public function __construct()
- {
- }
- public function add($numa, $numb)
- {
- return $numa + $numb;
- }
- public function check()
- {
- return 'fbbiin@gmail.com';
- }
- }
- $test = new TestService();
- $hessian = new HessianService( $test, array('displayInfo' => true) );
- $hessian->handle();//注意这里不是网上的$hessian->service(),可能是版本不一样,改了吧!我也是看了源码才知道!
- ?>
client 端:
PHP Code复制内容到剪贴板
- include_once 'HessianPHP/HessianClient.php';
- $url = "http://localhost/phpservice/hessianserver/server.php";
- $options = new HessianOptions();
- $client = new HessianClient( $url, $options );
- $num = $client->add( 3, 5 );
- echo $num;//得到:8;
- echo $client->check();//得到:fbbiin@gmail.com;
下面说下生成wsdl文件。
我们在webservice上面进行通信用的最多的和相对来说比较安全的就是使用wsdl了,这种文件可以自己书写,但是不是一定的大牛好像写不出来啊,因此我们需要借助一个工具zend studio来生成wsdl文件。
下面我们就来生成WSDL文件了,File->New—>Other—>Web Service—>WSDL,这样就可以新建一个WSDL文件了,如图。



然后我们就来修改WSDL文件,zeng studio为我们提供了可视化的操作,当然如果你牛的话,你当然是可以改文件代码的,其实也就几个东西, 弄懂了的话也不会太难。


做完这一步,这个WSDL文件就基本可用了,但又两个问题需要注意:
做到这一步,有可能会测试失败,可能会因为没有进行binding,这个东西有时是需要手动来完成的,在binding上右键选择Generate Binding Content(就是两个大框中间那个小框)就行了。
第二个要注意的是php的WSDL缓存,在做测试时,一般要将WSDL缓存关闭,否则你使用的有可能是原来的WSDL文件,而不是更新过的。关闭缓存有两种方法,第一种就是直接到php.ini中设置soap.wsdl_cache_enabled = 0;第二种就是在php文件中添加一条语句,ini_set("soap.wsdl_cache_enabled", "0");
做到这里,你就可以放心地测试,调用你的server程序了。
说完了,OK!
资料参考:
1:http://winphfar.iteye.com/blog/559347;
2:http://www.iteye.com/blogs/tag/phprpc
3:http://yeyuan.iteye.com/blog/1261491
4:http://www.cnblogs.com/helloxyz/archive/2011/11/5.html
5:http://www.phpx.com/happy/thread-122030-1-1.html

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Jika anda seorang pembangun PHP yang berpengalaman, anda mungkin merasakan bahawa anda telah berada di sana dan telah melakukannya. Anda telah membangunkan sejumlah besar aplikasi, menyahpenyahpepijat berjuta-juta baris kod dan mengubah suai sekumpulan skrip untuk mencapai op

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.

Apakah kaedah sihir PHP? Kaedah sihir PHP termasuk: 1. \ _ \ _ Membina, digunakan untuk memulakan objek; 2. \ _ \ _ Destruct, digunakan untuk membersihkan sumber; 3. \ _ \ _ Call, mengendalikan panggilan kaedah yang tidak wujud; 4. \ _ \ _ Mendapatkan, melaksanakan akses atribut dinamik; 5. \ _ \ _ Set, melaksanakan tetapan atribut dinamik. Kaedah ini secara automatik dipanggil dalam situasi tertentu, meningkatkan fleksibiliti dan kecekapan kod.
