一 : PHP实现的redis主从数据库状态检测功能示例
本文实例讲述了PHP实现的redis主从数据库状态检测功能。分享给大家供大家参考,具体如下:
实例:
<?php /** * 检测多个主从redis数据库是否挂掉 * 建立从数据库$redis_db的二维数组,内容包含每个从服务器的配置数据 */ header("Content-Type: text/html; charset=utf-8"); set_time_limit(0); $redis_db = array( 'db1'=>array( 'hostname' => '127.0.0.1', 'port' => 6379, 'password' => '', ), 'db2'=>array( 'hostname' => '192.168.2.179', 'port' => 6379, 'password' => '111111', ), ); $content = ''; foreach ($redis_db as $db_key) { $host = $db_key['hostname']; $port = $db_key['port']; $redis = new Redis(); //连接本地的 Redis 服务 $status= $redis->connect($host, $port); if(!$status) { $content .= "redis从数据库( $host )无法连接 ! <br/>"; continue; } if(!empty($db_key['password'])) { $pass = $redis->auth($db_key['password']); if(!$pass) { $content .= "redis从数据库( $host )密码错误 ! <br/>"; continue; } } try { $config = $redis->info(); if('up' == $config['master_link_status']) { } else { $content .= "redis从数据库( $host )挂掉了! <br/>"; } } catch(RedisException $e) { $content .= "redis从数据库( $host )报错:" . $e->getMessage()."<br/>"; } } //若报错信息不为空,发送报错邮件 if(!empty($content)) { $title = '主从redis数据库状态检测报错 '; $content = date("Y-m-d H:i:s",time()) . "<br/>" . $content; $sendurl = "http://localhost/api.com/test.php?title=".$title."&content=".$content; $result = file_get_contents($sendurl); if('ok' != $result) { $message = date("Y-m-d H:i:s",time()).' redisSlave.php 主从redis数据库状态检测报错 邮件发送失败!'."n"; $content = str_replace("<br/>", "n", $content); $message .= $content; error_log($message,3,"error.log"); } }
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php+redis数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《PHP基本语法入门教程》、《PHP网络编程技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
二 : Python 实现类似PHP的strip
最近在研究 Python ,发现用的还是很不习惯,很多PHP里面很简单的功能在Python 里面都得找半天,而且很多功能都得自己实现。
今天做个采集,需要过滤内容中的标签,搞了一下午,貌似终于搞出来了,测试了下达到了预想的效果,废话不多说贴上代码吧
from html.parser import HTMLParserdef strip_tags(html, save=None): result = [] start = [] data = [] def starttag(tag, attrs): if tag not in save: return start.append(tag) if attrs: j = 0 for attr in attrs: attrs[j] = attr[0] + '="' + attr[1] + '"' j += 1 attrs = ' ' + (' '.join(attrs)) else: attrs = '' result.append('<' + tag + attrs + '>') def endtag(tag): if start and tag == start[len(start) - 1]: result.append('' + tag + '>') parser = HTMLParser() parser.handle_data = result.append if save: parser.handle_starttag = starttag parser.handle_endtag = endtag parser.feed(html) parser.close() for i in range(0, len(result)): tmp = result[i].rstrip('\n') tmp = tmp.lstrip('\n') if tmp: data.append(tmp) return ''.join(data)
result = strip_tags("""发生的杀毒足球比分直播竞彩足球篮球竞彩">打蛇打七寸,北单7串1。由于北京单场SP值计算规则与竞彩不同,4串1及以下投注购买竞彩更划算,而7串1以上的投注很可能交税,反而不划算。根据计算,北京单场4串1到7串1之间的投注最划算。
""", ['p', 'img']) print(result)
发生的杀毒足球比分直播竞彩足球篮球竞彩">打蛇打七寸,北单7串1。由于北京单场SP值计算规则与竞彩不同,4串1及以下投注购买竞彩更划算,而7串1以上的投注很可能交税,反而不划算。根据计算,北京单场4串1到7串1之间的投注最划算。
标签
扩展:python strip / python strip函数 / python line.strip
三 : 基于ASP的购物车的设计与实现
基于ASP购物车的设计与实现
摘要:本文利用Session方法设计并实现了一个购物车。(www.61k.com)利用Session的功能,可以将购物信息(商品ID和购买数量)存储到Session变量中,Session方法将数据存储在服务器端的Session("cart")中。Session方法实现的购物车运行稳定,性能良好,一般的在线购物类网站都选择Session+Dictionary方法实现购物车。
关键词:购物车 Session Dictionary ASP
The Design and Implemention of ShoppingCart
Based on ASP
Abstract:In the paper,it designs and implements a shoppingcart by ASP.Using Session,we can save shopping information(such as good ID and quantity) into Session variables.Then Session will save the information into Session("cart") at server. shoppingcart by Session can run stability with good performance. Usually,the line shopping sites choose Session+Dictionary to implement the ShoppingCart.
Keyword: ShoppingCart Session Dictionary ASP
0引言
近年来,随着电子商务的迅猛发展,各种类型的电子商务网站大量涌现。电子商务网站
[1]中的购物车一直是各种动态Web编程技术(如ASP,PHP,JSP和.NET等)要解决的首要问题。
不同类型动态Web编程技术实现购物车的代码会有所区别,但基本原理是一致的。本文就以ASP动态Web编程技术为例讲述如何设计和实现一个购物车。
1关键技术
购物车在线购物类网站中是非常重要的功能。它是一个虚拟的购物篮,用户可以将自己喜爱的商品放入购物篮,同时也可以将不需要商品从你的购物篮中拿出去。它的出现使网上购物显得非常的简单、形象和人性化。要想在网站上实现购物车功能,可以用
[2]Session+Dictionary和Cookie等技术。使用Cookie设计购物车的缺点是必须要求用户端浏览
器支持Cookie并且打开它。其稳定性和实用性没有Session+Dictionary设计的购物车好,本文将以Session+Dictionary为例讲述如何设计一个购物车。首先先来大致了解一下Session对象和Dictionary对象。
(1)Session对象: Session对象存储特定用户会话所需的信息。Session对象是在每一位访问者从Web站点或Web应用程序中首次请求一个ASP页时创建的,它将保留到默认的期限结束或通过脚本设置中止的期限。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。利用Session的功能,可
[3]以将购物信息(商品ID和购买数量)存储到Session变量中。
(2)Dictionary对象:为了更加灵活实现的购物车,设计过程中可以引进Dictionary对象。Dictionary 对象与关联数组是等价的,Dictionary对象用于数组,可以存储key/item数据对,其中key的值是惟一的,而item的值可以重复,且item项与key项相关联。这样key可以用来存储购买商品的ID,而item则可以存储购买商品的数量。Dictionary对象用于在结对的名称/值中存储信息(等同于键和项目)。Dictionary对象看起来比数组更为简单,但其处理关联数据的效果却比数组更好[4]。
Dictionary对象的常用属性如下:
asp购物车代码 基于ASP的购物车的设计与实现
2购物车的设计和实现
利用Session+Dictionary实现购物车需要经过以下几个步骤。(www.61k.com)
(1)将商品放入购物车,代码如下[5]。
GoodID=request.Form("GoodID")
response.Write GoodID
Num=1
'如果Session("cart")不存在,则创建Dictionary对象并将其存入Session("cart")中。 If (Not IsObject(Session("cart"))) then
Set Session("cart")=Server.CreateObject("Scripting.Dictionary")
end if
Set Cart=Session("cart") '将Session("cart")展开一个本地副本调用。 '如果该商品的ID不存在,则可以使用Dictionary对象的Add方法
'将商品的编号(GoodID)和购买的数量Num写入到Cart中,
'否则商品数量加1。
If (Not Cart.Exists(GoodID)) then
Cart.Add GoodID,Num
else
Cart.item(GoodID)=Cart.item(GoodID)+1
end if
'接着再将修改后的本地副本整体赋值给Session ("cart")
Set Session("cart")=Cart
'跳转到显示购物车商品页面。
response.Redirect("shopCart.asp")
[6](2)查看购物车中的商品,代码如下。
<%
'将Session("cart")展开一个本地副本Cart调用。
Set Cart=Session ("cart")
'采用将Cart中的数据组分别赋值给Keys(商品ID组)和Items (商品数量组)这2
asp购物车代码 基于ASP的购物车的设计与实现
个变量。(www.61k.com]
Keys=Cart.keys
Items=Cart.items
dim sum,sumPrice
sum=0
sumPrice=0
'使用循环语句显示用户购买的商品和数量以及总价等信息。 For i = 0 To Cart.Count-1
goodid = Keys(i)
sum=sum+Items(i)
'……显示购物车中所有商品
Next
%>
(3)修改购物车中的商品,代码如下。
<%
'获取商品id和购买数量参数
id=request.Querystring("id")
num=request.Querystring("num")
'将Session("cart")展开一个本地副本Cart调用。
Set Cart=Session("cart")
'如果Cart存在改商品,则修改购买数量。
If Cart.Exists(id) Then
Cart.item(id)=Int(num)
End If
'接着再将修改后的本地副本整体赋值给Session ("cart") Set Session("cart")=cart
'跳转到shopCart.asp页面。
61阅读请您转载分享:
Response.Redirect "shopCart.asp"
%>
(4)删除购物车中的商品,代码如下。
<%
id=request.Querystring("id")
'将Session("cart")展开一个本地副本Cart调用。
Set Cart=Session("cart")
If Cart.Exists(id) then '判断商品ID是否存在
Cart.Remove(id) '在Cart中删除该ID End if
'接着再将修改后的本地副本整体赋值给Session ("cart") Set Session("cart")=cart
'跳转到shopCart.asp页面。
Response.Redirect "shopCart.asp"
%>
(5)清空购物车,代码如下[7]。
<%
asp购物车代码 基于ASP的购物车的设计与实现
'将Session("cart")展开一个本地副本Cart调用。[www.61k.com]
Set Cart=Session("cart")
'使用Dictionary对象的RemoveAll方法清空“购物车”。
Cart.Removeall()
'接着再将修改后的本地副本整体赋值给Session ("cart")
Set Session("cart")=cart
'跳转到shopCart.asp页面。
Response.Redirect "shopCart.asp"
%>
(6)购物车运行结果如图1所示。
图1 购物车界面
3总结
在ASP技术中,常使用Session和Cookie等方法实现购物车功能,这些方法的共同点是,产生一个临时存放用户购物信息的存储空间,不同的是这些信息存放的位置和程序设计的方法。Session方法是将数据存储在服务器端的Session("cart")中,Cookie方法是存储在客户端的Cookie文件中。这些实现的方法各有优缺点,设计者可以根据实际情况进行选
[8]择,一般的在线购物类网站可以选择Session+Dictionary方法实现购物车。
参考文献:
[1]李怀恩.电子商务网站建设与完整实例[M].北京:化学工业出版社.2009.3
[2]林正荣,王炜立.ASP语言程序设计[M].北京:清华大学出版社.2009.1.
[3]宁晨凯.成人高等教育网络课程平台的设计与实现[J].科技创新导报.2010.6:152-153.
[4]李鑫.基于ASP和SQL技术的人力资源网络数据库的设计探讨[J].硅谷.2010.4:45-49.
[5]何国民,仲治国.ASP动态网站:68个典型模块精解[M].北京:科学出版社.2009.4.
[6]管西京.ASP+Access动态网站案例开发[M].北京:电子工业出版社.2008.7.
[7]王萍萍,李晓娜,孙更新.ASP+Dreamweaver动态网站开发[M].北京:清华大学出版社.2008.8
[8]杨坚争.电子商务网站典型案例评析(第3版)[M].西安:电子科技大学出版社.2010.4
61阅读请您转载分享:
四 : php购物车的实现
用php数组和cookie实现购物车功能,实现的方法是:把cookie存入array,对array进行增加、删除、修改操作,array中的每一组记录都是1个商品的信息(个数,价格等)五 : php购物车功能的实现
22.10 购 物
车
购物车如图22.29所示,它的实现过程是本章的重点内容。(www.61k.com)购物车的作用是用来临时储存用户的购物信息。用户可以修改购物车中的商品数量、移除购物车中的某件商品、清空购物车。购物车的实现和数据存储主要是依赖session来实现的,当用户退出购物系统时,购物车中的商品会被自动清空,这个原理与在超市选购商品是一样的。下面将详细介绍购物车的实现过程。
图22.29 购物车
22.10.1 添加商品至购物车
主要技术:count、explode()
用户看好一件商品后,但又没有确定买不买时,就可以将商品先放进购物车中。下面将介绍如何将商品添加至购物车。
在介绍检测用户登录页面chkuser.php中已经介绍过,当每个用户登录成功后系统将为每个用户分配两个session变量$producelist和$quatity,分别用来存储用户放入购物车中的商品id和这些商品的数量,当然一个变量同一时刻只能有一个值,要实现将多个id值同时保存在一个$producelist变量中,首先将id 转变成字符型变量,并且这些变量用字符“@”进行连接,如用户分别将id为1、4、23的商品放入购物车中,这时session变量$producelist的值应该为“1@4@23@”,下面的操作只需用函数explode()和函数implode()就可以完成id的提取和连接。实现该过程的代码如下:
php购物车 php购物车功能的实现
<!--*******************************addgouwuche.php*******************************-->
<?php
session_start();
if($_SESSION[username]=="") //判断用户是否已经登录
{
echo "<script>alert('请先登录后购物!');history.back();</script>"; //如果用户还没登录,则提示用户先登录并返回到原来页面
exit; //用exit语句停止循环的继续执行
}
$id=strval($_GET[id]); //获取商品id值
$array=explode("@",$_SESSION[producelist]); //将session变量$producelist中的内容用字符“@”进行分割,并将结果保存在数组$array中
for($i=0;$i<count($array)-1;$i++)
{
if($array[$i]==$id) //如果$array数组中存在与$id相等的元素,说明该$id所对应的商品已经在购物车中
{
echo "<script>alert('该商品已经在您的购物车中!');history.back();</script>";
exit;
}
}
$_SESSION[producelist]=$_SESSION[producelist].$id."@"; //如果该商品不在购物车中,则将该商品的id值连接到session变量$producelist之后,并用“@”进行分割
$_SESSION[quatity]=$_SESSION[quatity]."1@"; //同时将该商品的数量用“@”进行分割保存在session变量$quatity中,并将默认数量设置为1
header("location:gouwu1.php"); //添加成功之后将该页定位到 gouwu1.php页面显示购物车中的内容
?>
将商品添加至购物车的过程涉及到函数explode()、count()的用法,下面为这两个函数的描述:
array explode(string separator,string str)
此函数以字符串str中的子串separator作为分割符将字符串分割开来,分割后的一个或多个子串以数组的形式返回。[www.61k.com)
int count(mixed var)
count()函数的作用是用来计算变量var中元素的个数,如果变量为空则返回0,变量如果是数组则返回数组元素的个数,如是普通型变量则返回1。
说明:上面说到的id指的是shangpin表中的id字段。
22.10.2 查看购物车
php购物车 php购物车功能的实现
用户选购完商品后,可以通过查看购物车来查看当前用户购物车中的商品信息。[www.61k.com]购
物车如图22.30所示。
php购物车 php购物车功能的实现
查看购物车代码如下:
<!--*******************************gouwu1.php**********************************-->
<?php
session_start();
if($_SESSION[username]=="") //判断用户是否已经登录,否则查看购物车无任何意义,
{
echo "<script>alert('请先登录,后购物!');history.back();</script>";
exit; //如果用户没登录则停止程序继续执行
}
?>
<?php
include("top.php"); //包含首部导航条
?>
<table width="800" height="438" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="200" height="438" valign="top" bgcolor="#E8E8E8"><div align="center"> <?php include("left.php");?> //将页面左边的用户登录及公告显示模块包括进来 </div></td>
<td width="10" background="images/line2.gif"> </td>
<td width="590" valign="top"><table width="550" height="10" border="0" align="center" cellpadding= "0" cellspacing="0">
<tr>
<td> </td>
</tr>
</table> s
<table width="500" border="0" align="center" cellpadding="0" cellspacing="0"> <form name="form1" method="post" action="gouwu1.php">
61阅读提醒您本文地址:
<tr>
<td height="25" bgcolor="#555555"><div align="center" style="color: #FFFFFF"><?php echo $_SESSION [username];?>的购物车</div></td>
</tr>
<tr>
<td bgcolor="#555555"><table width="500" border="0" align="center" cellpadding="0" cellspacing="1">
<?php
session_register("total"); //注册session变量$total用来保存所有商品价格总和 if($_GET[qk]=="yes") //判断用GET方法提交的qk的值是否为yes,如是则使$producelist和$quatity的值为空串,从而实现清空购物车的目的
{
$_SESSION[producelist]="";
$_SESSION[quatity]=""; }
php购物车 php购物车功能的实现
$arraygwc=explode("@",$_SESSION[producelist]); //将$producelist用@进行分割从而将购物车中现有商品id的值存放到数组$arraygwuc中
$s=0; //用$s保存购物车中商品id的总和
for($i=0;$i<count($arraygwc);$i++)
{
$s+=intval($arraygwc[$i]); }
if($s==0 ) //如果$s的值为空,则说明购物车中无商品
{ echo "<tr>";
echo" <td height='25' colspan='6' bgcolor='#FFFFFF' align='center'>您的购物车为空!</td>";
echo"</tr>";
} else //如果$s的值不为空,则显示购物车中所有商品信息 {
?> …… //显示购物车中商品信息,代码请详见本书附带光盘 主要技术:implode()
22.10.3 从购物车中移去指定商品
该模块实现的基本思想是:首先用函数explode()将session变量$producelist以“@”进行分割,并把分割出的子串存放到数组中,之后将用户移去的商品对应的数组元素赋予空值,最后将数组元素重新组合成新串。(www.61k.com)该模块详细代码如下:
<!--******************************removegwc.php*********************************-->
<?php $id=$_GET[id]; //获取用户打算移去商品的id
session_start();
$arraysp=explode("@",$_SESSION[producelist]); $arraysl=explode("@",$_SESSION[quatity]); //分别将购物车中的商品id和对应商品的数量存放到数组$arraysp和$arraysl中
for($i=0;$i<count($arraysp);$i++)
{
if($arraysp[$i]==$id) //通过循环寻找与id值相等的数组元素
{
$arraysp[$i]="";
$arraysl[$i]=""; //将与id值相等的数组元素赋于空值
}
}
$_SESSION[producelist]=implode("@",$arraysp); $_SESSION[quatity]=implode("@",$arraysl); //利用implode()函数将数组元素重新组合成新串
header("location:gouwu1.php"); //重新定位到gouwu1.php显示购物车 ?>
php购物车 php购物车功能的实现
…… //省略了HTML标记,请参看本书附带光盘
上述代码涉及到函数implode()的用法:
string implode(string glue,array pieces)
此函数的作用与explode()函数的功能恰恰相反,其作用是将数组pieces中的元素以字符glue相连,从而形成一个新字符串。(www.61k.com)
22.10.4 修改商品购买数量
购物车中的商品默认数量是1件,如果用户打算购买多件相同的商品就需要利用修改商品购买数量这一模块来实现。修改商品数量与从购物车中移去指定商品的原理类似,只不过从购物车中移去某件商品是将该商品对应的数组元素赋予空值,而修改商品购买数量是将购物车中某件商品对应的数组元素赋于新值。实现该功能的代码如下:
<!--*****************************gouwu1.php************************************--> while(list($name,$value)=each($_POST)) //提取表单中的商品id和新数量 {
for($i=0;$i<count($array)-1;$i++)
{
if(($array[$i])==$name)
{ $arrayquatity[$i]=$value; //获取购物车中每种商品的数量,并将数量保存到$arrayquatity数组中
}
}
}
购物车中用于输入商品数量的文本框是用商品id来命名的,所以通过语句list($name,
$value)=each($_POST)赋值就使$name为购物车中某件商品的id,而$value为该商品对应的数量,之后通过循环处理将$value赋予新的数量就可以实现该模块。 22.10.5 清空购物车
当用户重新选购商品时,就需要清空购物车中所有商品,该功能实现的基本思想是:将session变量$producelist和$quatity的值都赋予空串。该过程代码如下: <!--********************************gouwu1.php*********************************-->
if($_GET[qk]=="yes") //判断用户是否点击”清空购物车”
php购物车 php购物车功能的实现
{ $_SESSION[producelist]=""; //清空购物车中商品id
$_SESSION[quatity]=""; //清空购物车中商品数量
} 22.10.6 收银台结账
用户确定要购买购物车中所有商品之后,就需要到收银台页面填写收货人信息,系统管理人员将通过该信息确定收货人地址、商品名称及数量等,同时系统会根据这些信息给出订单。[www.61k.com)收银台页面如图22.31所示。具体实现代码如下:
<!--********************************savedd.php**********************************-->
<?php session_start();
61阅读提醒您本文地址:
include("conn.php"); //包含数据库连接文件
$sql=mysql_query("select * from user where name='".$_SESSION[username]."'",$conn); $info=mysql_fetch_array($sql);
$dingdanhao=date("YmjHis").$info[id];
$spc=$_SESSION[producelist];
$slc= $_SESSION[quatity];
$shouhuoren=$_POST[name];
$sex=$_POST[sex];
$dizhi=$_POST[dz];
$youbian=$_POST[yb];
$tel=$_POST[tel];
$email=$_POST[email];
$shff=$_POST[shff];
$zfff=$_POST[zfff];
if(trim($_POST[ly])=="")
{
$leaveword="";
}
else
{
$leaveword=$_POST[ly];
}
$xiadanren=$_SESSION[username];
$time=date("Y-m-j H:i:s");
$zt="未作任何处理";
$total=$_SESSION[total]; //以上代码是从表单中获取收货人信息
mysql_query("insert into dingdan(dingdanhao,spc,slc,shouhuoren,sex,dizhi,youbian,tel,email,shff,zfff,leaveword,time,xiadanren,zt,total) values ('$dingdanhao','$spc','$slc','$shouhuoren','$sex','$dizhi','$youbian','$tel','$email','$shff','$zfff','$leaveword','$time','$xiadanren','$zt','$total')",$conn); //将信息添加到dingdan表
header("location:gouwu2.php?dingdanhao=$dingdanhao"); //重新定位到收银台 ?>
php购物车 php购物车功能的实现
图22.31 收银台
上述代码中mysql_query()函数的执行结果并没有具体的赋给某个变量,这是因为当用该函数执行“insert”、“delete”等SQL语句时并不需要回显结果,而执行“select”语句时一般都需要将结果显示在前台页面中,所以经常会将该函数的执行结果赋给某一个变量,以后用诸如mysql_fetch_array()等函数提取数据库中内容时会用到该变量。(www.61k.com)
61阅读提醒您本文地址:
本文标题:php购物车功能的实现-PHP实现的redis主从数据库状态检测功能示例61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1