PHPRPC只应用实例----播放器DEMO----抛弃ajax--建立我们自己的云计算--让SOA更精彩
时间:2009-02-23
来源:互联网

这个项目是为采集来的歌手,歌曲,专辑名称歌曲url制作的播放DEMO
PHPRPC在这个项目中负责数据服务中间件,负责写入和检索数据对外提供数据库接口。
ps:我习惯性的使用PHPRPC做数据服务中间件。
c#客户端,PHP做服务端,数据库用的是MySQL。
PHPRPC使用的是PHPRPC for PHP 3.0.1
PHPRPC 是一个轻型的、安全的、跨网际的、跨语言的、跨平台的、跨环境的、跨域的、支持复杂对象传输的、支持引用参数传递的、支持内容输出重定向的、支持分级错误处理的、支持会话的、面向服务的高性能远程过程调用协议。
http://www.phprpc.org
-----------------------------------------------以下是服务端PHP代码-------------------------------------------------------------------
config.class.php
<?php
class Config
{
//InitDB
const DBType="mysql"; //DataBaseType
const DBHost="127.0.0.1"; //ServerIP
const DBUser="root"; //UserName
const DBPassWord="123456"; //PassWord
const DBName="LibreMusic"; //DabaBaseName
}
?>
db.class.php
<?php
require_once("config.class.php");
class DB extends Config
{
//Class Var
private $pdo=null;
private $fetchmode_assoc=PDO::FETCH_ASSOC;
//构造函数
public function __construct()
{
$dns=parent::DBType.":host=".parent::DBHost.";dbname=".parent::DBName;
$this->pdo = new PDO($dns,parent::DBUser,parent::DBPassWord);
//$this->Query("set names utf-8");
$this->Query("set names gb2312");
}
public function getPDO()
{
return $this->pdo;
}
//执行sql语句
public function Query($sql)
{
return $this->pdo->query($sql);
}
public function Execute($sql)
{
return $this->pdo->exec($sql);
}
//获取所有记录
public function fetchAll($sql)
{
$rs=$this->Query($sql);
return $rs->fetchAll($this->fetchmode);
}
//获取单个记录
public function Fetch($sql)
{
$rs=$this->Query($sql);
return $rs->fetch($this->fetchmode_assoc);
}
}
?>
music.class.php
[php]
<?php
class Music extends DB
{
public function __construct()
{
parent::__construct();
}
public function GetSonger($sex="男",$addr="华人")
{
$sql="select * from songer where s_sex='$sex' and s_class='$addr'";
return $this->fetchAll($sql);
//$arr[]=array("你好么",iconv("gb2312","utf-8","你好"));
//return $arr;
}
public function GetRecord($s_id)
{
$sql="select `re_name`, `re_mp3url`, `r_name`, `s_name`,`re_url` FROM `repertoire` where s_id='$s_id'";
return $this->fetchAll($sql);
}
public function SetAuthCode($codestr)
{
return file_get_contents("http://1111111.6621.com/getuuauthcode");
}
};
?>
[/php]
api.php
<?php
require_once("server/phprpc_server.php");
require_once("db.class.php");
require_once("music.class.php");
$rpc = new phprpc_server();
$rpc->setCharset("GBK");
$rpc->add(array(
"GetSonger",
"GetRecord",
"SetAuthCode"
),new Music());
$rpc->start();
//$m =new Music();
//print_r($m->GetRecord(1350));
?>

作者: T.T.R 发布时间: 2009-02-23
作者: wzj5 发布时间: 2009-02-23

作者: andot 发布时间: 2009-02-23

作者: bawbaw 发布时间: 2009-02-23
作者: PHPChina 发布时间: 2009-03-02

作者: ylcz 发布时间: 2009-03-03

作者: naodai 发布时间: 2009-03-03
作者: zxe 发布时间: 2009-12-23
作者: chenlong1985 发布时间: 2010-01-04
看来是很不错。研究下,
作者: Niger 发布时间: 2010-01-05
作者: yoeen 发布时间: 2010-01-05
作者: darkst 发布时间: 2010-01-05
作者: jellee520 发布时间: 2010-01-05
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28