网站首页站长博客下载中心域名交易站长论坛域名主机免费电邮免费域名中文排行排名查询站长书库书籍教程下载
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
学院首页 网络编程 网页设计 图形图象 数 据 库 服 务 器 网络媒体 网络安全 个人专栏 站长CLUB 业界新闻 信息公告
 当前位置:首页 >> 网络编程 >> PHP专区 >> 正文
公告通知
返回上级列表
资料搜索
相关文章
用Asp+XmlHttp实现RssReader功能
用PHP制作动态计数器
贯彻PHP中的MVC之控制器篇
使用MD5变换算法防穷举(冲撞)破译
PHP程序加速探索之服务器负载测试
PHP应用程序加速探索之简介
PHP读取汉字点阵数据
PHP.MVC的模板标签系统之初识PHP
用PHP写的身份证验证程序
PHP程序与服务器端通讯方法小结
[ 来源:天极网络 | 作者:无从考证 | 时间:2005-12-6 13:29:08 | 浏览:人次 ]
收藏到新浪ViVi 收藏到365KEY 收藏到我摘  字号选择〖    〗/ 双击滚屏 单击停止  
假设有10个网站,分布在各地,它们的库存要同步,而数据库不支持远程连接。

  我们要实时地取得服务器的库存数,可以通过很多种方法,我所知道的有以下几种:

   ·CURL方式

   ·SOCKET方式

   ·PHP5中的SOAP方式

  以下分别给出示例来实现它:

  CURL方式

  client.php

<?php
$psecode = ’NDE005’;
$website = ’www.abc.com’;
$amt = 1;
$pwd = 123456;
$ch = curl_init();
$curl_url = "http://ics1.server.com/index.php?web=" . $website . 
"&pwd=" . $pwd . "&action=check&pseid=" . $psecode . 
"&amt=" . $amt;
curl_setopt($ch, CURLOPT_URL, $curl_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//不直接输出,返回到变量
$curl_result = curl_exec($ch);
$result = explode(’,’, $curl_result);
curl_close($ch);
print_r($result);
?>
  服务器端只需按一定的格式输出,然后客户端按此格式接收就可以了如:

echo "OK," . $fpsecode . "," . $fbalance ;//以逗号分隔
  SOCKET方式

  这个要借助第三方类库HttpClient,可以到这里下载:http://scripts.incutio.com/httpclient/

<?php
require_once ’class/HttpClient.php’;
$params = array(’web’ => ’www.abc.com’,
’pwd’ => ’123456’,
’action’ => ’check’,
’pseid’ => ’NDE005’,
’amt’ => 1);
$pageContents = HttpClient::quickPost(’http://ics.server.com/index.php’, $params);
$result = explode(’,’, $pageContents);
print_r($result);
?>
  PHP5中的SOAP方式

  server.php

<?php 
function getQuote($fpsecode) { 
global $dbh;
$result = array();
try {
$query = "SELECT fprice, fcansale, fbalance, fbaltip FROM tblbalance where upper(trim(fpsecode)) = :psecode limit 1";
$stmt = $dbh->prepare($query);
$stmt->execute(array(’:psecode’ => strtoupper(trim($fpsecode))));
$stmt->bindColumn(’fprice’, $fprice);
$stmt->bindColumn(’fcansale’, $fcansale);
$stmt->bindColumn(’fbalance’, $fbalance);
$stmt->bindColumn(’fbaltip’, $fbaltip);
while($row = $stmt->fetch(PDO_FETCH_BOUND)) {
//
}
} catch (PDOException $e) {
echo $e->getMessage();
}
return $fprice; //你可以返回一个数组


$dsn = ’pgsql:host=192.168.*.* port=5432 dbname=db user=123456 password=123456’;
try {
$dbh = new PDO($dsn);
} catch (PDOException $e) {
die(’Connection failed: ’ . $e->getMessage()); 
}
ini_set("soap.wsdl_cache_enabled", "0"); // disabling WSDL cache 
$server = new SoapServer("stockquote.wsdl"); //配置文件
$server->addFunction("getQuote"); 
$server->handle(); 
?>
  stockquote.wsdl

<?xml version =’1.0’ encoding =’UTF-8’ ?> 
<definitions name=’StockQuote’ 
targetNamespace=’http://example.org/StockQuote’ 
xmlns:tns=’ http://example.org/StockQuote ’ 
xmlns:soap=’http://schemas.xmlsoap.org/wsdl/soap/’ 
xmlns:xsd=’http://www.w3.org/2001/XMLSchema’ 
xmlns:soapenc=’http://schemas.xmlsoap.org/soap/encoding/’ 
xmlns:wsdl=’http://schemas.xmlsoap.org/wsdl/’ 
xmlns=’http://schemas.xmlsoap.org/wsdl/’> 

<message name=’getQuoteRequest’> 
<part name=’symbol’ type=’xsd:string’/> 
</message> 
<message name=’getQuoteResponse’> 
<part name=’Result’ type=’xsd:float’/> 
</message> 

<portType name=’StockQuotePortType’> 
<operation name=’getQuote’> 
<input message=’tns:getQuoteRequest’/> 
<output message=’tns:getQuoteResponse’/> 
</operation> 
</portType> 

<binding name=’StockQuoteBinding’ type=’tns:StockQuotePortType’> 
<soap:binding style=’rpc’ 
transport=’http://schemas.xmlsoap.org/soap/http’/> 
<operation name=’getQuote’> 
<soap:operation soapAction=’urn:xmethods-delayed-quotes#getQuote’/> 
<input> 
<soap:body use=’encoded’ namespace=’urn:xmethods-delayed-quotes’ 
encodingStyle=’http://schemas.xmlsoap.org/soap/encoding/’/> 
</input> 
<output> 
<soap:body use=’encoded’ namespace=’urn:xmethods-delayed-quotes’ 
encodingStyle=’http://schemas.xmlsoap.org/soap/encoding/’/> 
</output> 
</operation> 
</binding> 

<service name=’StockQuoteService’> 
<port name=’StockQuotePort’ binding=’StockQuoteBinding’> 
<soap:address location=’http://192.168.3.9/php5/server.php’/> 
</port> 
</service> 
</definitions>

client.php

<?php 
$client = new SoapClient("stockquote.wsdl"); 
$result = $client->getQuote("nde005"); 
print_r($result);
?>

[发送给好友]  [打印本页]  [关闭窗口]  [返回顶部]   转载请注明来源:http://edu.chinaz.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
栏目编辑: 设计风 责任编辑: 简若宁
原始作者: 无从考证 录入时间: 2005-12-6 13:29:08
信息来源: 天极网络 投稿信箱: Edu#chinaz.com
设为首页 - 加入收藏 - 关于我们 - 广告服务 - 版权申明 - 友情链接 - 联系方式 - 总编信箱 - 会员投稿