当前位置:  编程技术>php
本页文章导读:
    ▪PHP基础知识回顾       header("Content-Type:text/html;charset=UTF-8"); $conn = mysql_connect('localhost','root','');//链接服务器(非永久性) if(!$conn){ echo '<hr/>'; die('error:'.mysql_error()); }else{ echo '<hr/>'; echo '链接服务器:'.$conn; } $.........
    ▪php开发文档 会员收费1期       介绍   最新项目——会员收费,目的是要以更好的展现形式表现给用户,以及添加了新功能(会员机制)。 索引 流程图   1> 展示界面   2> 获取折扣价格 接口说明 http请求脚本(c.........
    ▪php适配器模式介绍       要点: 1. 适配器模式主要应用于“希望复用一些现存的类,但是接口又与复用环境要求不一致的情况”,在遗留代码复用、类库迁移等方面非常有用。 2. 适配器模式有对象适配器和类适.........

[1]PHP基础知识回顾
    来源: 互联网  发布时间: 2013-11-30
header("Content-Type:text/html;charset=UTF-8");
$conn = mysql_connect('localhost','root','');//链接服务器(非永久性)
if(!$conn){
echo '<hr/>';
die('error:'.mysql_error());
}else{
echo '<hr/>';
echo '链接服务器:'.$conn;
}

$db = mysql_select_db('test',$conn);//选择数据库
if(!$db){
echo '<hr/>';
die('error:'.mysql_error());
}else{
echo '<hr/>';
echo '链接数据库:'.$db;
}

/*
mysql_query() 仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。
对于其它类型的 SQL 语句,mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE。
非 FALSE 的返回值意味着查询是合法的并能够被服务器执行。这并不说明任何有关影响到的或返回的行数。很有可能一条查询执行成功了但并未影响到或并未返回任何行。
*/
$sql="SELECT * FROM user";
$result = mysql_query($sql,$conn);//执行一条MySQL查询,该函数自动对记录集进行读取和缓存。如需运行非缓存查询,请使用 mysql_unbuffered_query()。
echo '<hr/>';
echo '查询结果集:'.$result;//返回资源标识符
//echo '<hr/>';
//print_r(mysql_fetch_array($result,MYSQL_ASSOC));//函数从结果集中取得一行作为关联数组
//echo '<hr/>';
//print_r(mysql_fetch_array($result,MYSQL_NUM));//函数从结果集中取得一行作为数字数组
//echo '<hr/>';
//print_r(mysql_fetch_array($result));//函数从结果集中取得一行作为关联数组与数字数组,mysql_fetch_row() 函数从结果集中取得一行作为数字数组

/*
mysql_fetch_array() 函数从结果集中取得一行作为关联数组,或数字数组,或二者兼有
返回根据从结果集取得的行生成的数组,如果没有更多行则返回 false。
*/
echo '<hr/>';
echo '<table border="1" cellspacing="0" cellpadding="5">';
while($row = mysql_fetch_array($result)){
echo "<tr>";
echo "<td>" . $row['FirstName'] . "</td>";
echo "<td>" . $row['LastName'] . "</td>";
echo "<td>" . $row['Age'] . "</td>";
echo "<td>" . $row['Hometown'] . "</td>";
echo "<td>" . $row['Job'] . "</td>";
echo "</tr>";
}
echo '</table>';

echo '<hr/>';
echo '关闭非持久的 MySQL 连接:'.mysql_close();

$name = array('fruits' => array('orange', 'banana', 'apple'),
'veggie' => array('carrot', 'collard','pea'));;
echo '<hr/>';
print_r($name['fruits'][1]);
echo '<hr/>';
echo count($name);//计算数组中的单元数目或对象中的属性个数

echo '<hr/>';
/*
符号“->”表示:调用类的函数和成员变量
*/
class className{
function funName(){
echo "dggdgdgd";
}
}
$classOne = new className();
$classOne->funName();

echo '<hr/>';
$i=0;
do{
$i++;
echo "The number is " . $i . "<br />";
}
while ($i<5);

    
[2]php开发文档 会员收费1期
    来源: 互联网  发布时间: 2013-11-30

介绍

  最新项目——会员收费,目的是要以更好的展现形式表现给用户,以及添加了新功能(会员机制)。

索引

流程图
  1> 展示界面
  2> 获取折扣价格
接口说明

http请求脚本(curl或socket)
测试数据

流程图

其中里面的demo:是通过url进行展现,里面的mst是参数,通过不同的参数进行展现。如:http://www.demo.com/?mst=1表示参数为1的demo样式。

展示界面(4种情况)

获取折扣价格

接口说明

1、开通高级会员
psid=2
pstype=101
2、开通会员
psid=1
pstype=101
3、[会员/高级会员]价格信息
wiki地址:http://wiki.1verge.net/projects:premium:v2:product_rules_api#根据会员等级id获取等级信息
4、[是否是会员]
wiki地址:http://wiki.1verge.net/projects:premium:v2:verify_center_api#获取当前会员等级
5、[折扣信息]
wiki地址:http://wiki.1verge.net/projects:premium:v2:operation_api#根据用户id_服务id_服务类型_服务周期数_获得当前用户可以享受的折扣策略
6、可包月节目+有权观看+高级会员则显示“您是高级会员,可免费观看此节目”
7、仅包月节目+有权观看+高级会员提示“续费”
8、除6以外+有权观看则显示“截止日期”

可以在Premium.class.php中list_shows_by_pkgid函数下面继续封装调用函数

http请求脚本(curl或socket)

代码如下:

<?php
function httpRequest($url, $hostName, array $params){
$postParams = array();
foreach ($params as $key=>$val) {
$post_params[] = $key.'='.rawurlencode($val);
}

$postString = implode('&', $post_params);
$result = '';
if (function_exists('curl_init')) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Host: ' . $hostName));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postString);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, 'DEMO.COM PREMIUM PHP5 Client ver: ' . phpversion());
curl_setopt($ch, CURLOPT_TIMEOUT, 2);
$result = curl_exec($ch);
curl_close($ch);
} else {
$context = array('http' => array('method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded' . "\r\n".
'Host: '.$hostName . "\r\n".
'User-Agent: TEST.COM BC Test PHP5 Client ver: ' . phpversion() . "\r\n".
'Content-length: ' . strlen($postString),
'content' => $postString));
$contextId = stream_context_create($context);
$handle = fopen($url, 'r', false, $contextId);
if ($handle) {
while (!feof($handle)) $result .= fgets($sock, 4096);
fclose($handle);
}
}

return $result;
}

测试数据

1、点播信息节目ID:1e390718b72311df97c0.html
2、vip用户ID:123350942
3、普通用户ID:106738702

有权观看的节目ID:cbfb035e962411de83b1.html

    
[3]php适配器模式介绍
    来源: 互联网  发布时间: 2013-11-30

要点:

1. 适配器模式主要应用于“希望复用一些现存的类,但是接口又与复用环境要求不一致的情况”,在遗留代码复用、类库迁移等方面非常有用。

2. 适配器模式有对象适配器和类适配器两种形式的实现结构,但是类适配器采用“多继承”的实现方式,带来了不良的高耦合,所以一般不推荐使用。对象适配器采用“对象组合”的方式,更符合松耦合精神。

实现:

类的适配器模式结构图(继承)

 

对象的适配器模式结构图(组合)

(对象适配器的代码实现)

Target:定义Client使用的与特定领域相关的接口

public interface Target { void request();}

 

Adaptee:现在需要适配的已经存在的接口

public class Adaptee{ public void specificRequest(){}}

 

Adapter:对Adaptee 的接口与Target接口进行适配

public class Adapter implements Target{ public Adapter(Adaptee adaptee) { super(); this.adaptee = adaptee; } public void request() { adaptee.specificRequest(); } private Adaptee adaptee;}

 

适用性:

1. 系统需要使用现有的类,而此类的接口不符合系统的需要。

2. 想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作。这些源类不一定有很复杂的接口。

3. (对对象适配器而言)在设计里,需要改变多个已有子类的接口,如果使用类的适配器模式,就要针对每一个子类做一个适配器,而这不太实际。

效果及优缺点:

对于类适配器:

1. 用一个具体的Adapter类对Adaptee和Taget进行匹配。结果是当我们想要匹配一个类以及所有它的子类时,类Adapter将不能胜任工作。

2. 使得Adapter可以override(重定义) Adaptee的部分行为,因为Adapter是Adaptee的一个子类。

对于对象适配器:

1. 允许一个Adapter与多个Adaptee,即Adaptee本身以及它的所有子类(如果有子类的话)同时工作。Adapter也可以一次给所有的Adaptee添加功能。

2. 使得override(重定义)Adaptee的行为比较困难。如果一定要override Adaptee的方法,就只好先做一个Adaptee的子类以override Adaptee的方法,然后再把这个子类当作真正的Adaptee源进行适配。


    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3