php 将远程二维码 画到海报上面

public function createimg($logo,$filename,$QR=”images/code.jpg”)
{
header(“Content-type: image/jpg”);
// $QR=”images/code.jpg”;
if ($logo !== FALSE) {
$QR = imagecreatefromstring(file_get_contents($QR));

$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_URL, $logo);
curl_setopt($ch, CURLOPT_REFERER, $logo);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($ch);
curl_close($ch);
$logo = imagecreatefromstring($result);
$QR_width = imagesx($QR);//二维码图片宽度
$QR_height = imagesy($QR);//二维码图片高度
$logo_width = imagesx($logo);//logo图片宽度
$logo_height = imagesy($logo);//logo图片高度
$logo_qr_width = $QR_width / 5;
$scale = $logo_width/$logo_qr_width;
$logo_qr_height = $logo_height/$scale;
$from_width = ($QR_width – $logo_qr_width) / 2;
imagecopyresampled($QR, $logo, 250, 920, 0, 0, 300, 300, $logo_width, $logo_height);
}
imagejpeg($QR,$filename,50);

}

js 定时弹出qq客服

var qq_chat = true;

function PlayJsAdPopWin() {

if (qq_chat) {

popwin = window.location.href = ‘tencent://message/?uin=200988027&Site=在线咨询&Menu=yes’

}

};

setTimeout(“PlayJsAdPopWin()”, 15000);

烟花 canvas html html5

<html><head>
<meta charset=”UTF-8″>
<title>canvas basic – firework – happy new year!</title>
<style>
*{margin: 0px;padding: 0px;}
canvas {display: block;}
</style>
</head>

<body>
<canvas id=”canvas” width=”1920″ height=”933″></canvas>
<script src=”http://www.100sucai.com/js/jquery.js”></script>

<script src=”js/index.js”>
$(function() {
var canvas = $(‘#canvas’)[0];
canvas.width = $(window).width();
canvas.height = $(window).height();
var ctx = canvas.getContext(‘2d’);

// init
ctx.fillStyle = ‘#000’;
ctx.fillRect(0, 0, canvas.width, canvas.height);
// objects
var listFire = [];
var listFirework = [];
var fireNumber = 10;
var center = { x: canvas.width / 2, y: canvas.height / 2 };
var range = 100;
for (var i = 0; i < fireNumber; i++) {
var fire = {
x: Math.random() * range / 2 – range / 4 + center.x,
y: Math.random() * range * 2 + canvas.height,
size: Math.random() + 0.5,
fill: ‘#fd1’,
vx: Math.random() – 0.5,
vy: -(Math.random() + 4),
ax: Math.random() * 0.02 – 0.01,
far: Math.random() * range + (center.y – range)
};
fire.base = {
x: fire.x,
y: fire.y,
vx: fire.vx
};
//
listFire.push(fire);
}

function randColor() {
var r = Math.floor(Math.random() * 256);
var g = Math.floor(Math.random() * 256);
var b = Math.floor(Math.random() * 256);
var color = ‘rgb($r, $g, $b)’;
color = color.replace(‘$r’, r);
color = color.replace(‘$g’, g);
color = color.replace(‘$b’, b);
return color;
}

(function loop() {
requestAnimationFrame(loop);
update();
draw();
})();

function update() {
for (var i = 0; i < listFire.length; i++) {
var fire = listFire[i];
//
if (fire.y <= fire.far) {
// case add firework
var color = randColor();
for (var i = 0; i < fireNumber * 5; i++) {
var firework = {
x: fire.x,
y: fire.y,
size: Math.random() + 1.5,
fill: color,
vx: Math.random() * 5 – 2.5,
vy: Math.random() * -5 + 1.5,
ay: 0.05,
alpha: 1,
life: Math.round(Math.random() * range / 2) + range / 2
};
firework.base = {
life: firework.life,
size: firework.size
};
listFirework.push(firework);
}
// reset
fire.y = fire.base.y;
fire.x = fire.base.x;
fire.vx = fire.base.vx;
fire.ax = Math.random() * 0.02 – 0.01;
}
//
fire.x += fire.vx;
fire.y += fire.vy;
fire.vx += fire.ax;
}

for (var i = listFirework.length – 1; i >= 0; i–) {
var firework = listFirework[i];
if (firework) {
firework.x += firework.vx;
firework.y += firework.vy;
firework.vy += firework.ay;
firework.alpha = firework.life / firework.base.life;
firework.size = firework.alpha * firework.base.size;
firework.alpha = firework.alpha > 0.6 ? 1 : firework.alpha;
//
firework.life–;
if (firework.life <= 0) {
listFirework.splice(i, 1);
}
}
}
}

function draw() {
// clear
ctx.globalCompositeOperation = ‘source-over’;
ctx.globalAlpha = 0.18;
ctx.fillStyle = ‘#000’;
ctx.fillRect(0, 0, canvas.width, canvas.height);

// re-draw
ctx.globalCompositeOperation = ‘screen’;
ctx.globalAlpha = 1;
for (var i = 0; i < listFire.length; i++) {
var fire = listFire[i];
ctx.beginPath();
ctx.arc(fire.x, fire.y, fire.size, 0, Math.PI * 2);
ctx.closePath();
ctx.fillStyle = fire.fill;
ctx.fill();
}

for (var i = 0; i < listFirework.length; i++) {
var firework = listFirework[i];
ctx.globalAlpha = firework.alpha;
ctx.beginPath();
ctx.arc(firework.x, firework.y, firework.size, 0, Math.PI * 2);
ctx.closePath();
ctx.fillStyle = firework.fill;
ctx.fill();
}
}
})
</script>

</body></html>

php 操作 redis 之 string 字符串类型

<?php
//第一步:实例化redis对象
$redis = new redis();
//第二步:php客户端设置的ip及端口
$redis->connect(“127.0.0.1″,”6379”);
//第三部:配置连接密码 检测redis服务器连接状态

//连接失败直接结束 并输出
$auth = $redis->auth(‘zhenai’) or die(“redis 服务器连接失败”);
// var_dump($auth);连接成功 返回 true 反之 返回false
//第四步 可用可不用
// echo $connect_status=$redis->ping();
// if($connect_status===”+PONG”)
// {
// echo “redis 服务器连接成功”;
// }
//就是如此简单
//var_dump($connect_status);
/*
第一部分
字符串(String)
一个键最多存储512MB
1》SET:设置key对应的值为value

语法:SET key value [EX seconds] [PX milliseconds] [NX|XX]
EX seconds:设置键的key的过期时间SET key value EX seconds — SETEX
PX milliseconds:以毫秒的形式设置过期时间SET key value PX milliseconds–PSETEX
NX:只有键不存在的时候才可以设置成功SET key value NX–SETNX
XX:只有key已经存在的时候才可以设置
*/
//1.存储一个值(set) 获取一个值(get)
$redis->set(“goonls”,”com”);
$goonls=$redis->get(“goonls”);
// echo $goonls;

//2.存储多个值(mset) 获取多个值(mget 或 getMultiple)
$array = array(
‘first_key’=>’first_val’,
‘second_key’=>’second_val’,
‘third_key’=>’third_val’);
$array_get = array(‘first_key’,’second_key’,’third_key’);
$redis->mset($array);
$goonls_array=$redis->mget($array_get);
// print_r($goonls_array);
/*打印结果 */
// Array
// (
// [0] => first_val
// [1] => second_val
// [2] => third_val
// )

//3.取一个不存在的值 返回false
$non_existent_string=$redis->get(“goonls.com”);
// var_dump($non_existent_string);
//返回false

//4.设置一个已经存在的值 会覆盖原来的值
$redis->set(“goonls”,”goonls.com”);
$set_existent_string=$redis->get(‘goonls’);
//echo $set_existent_string;
//覆盖原来“com”值 为 “goonls.com”
//5.删除 delete
// 描述:删除指定的键
// 参数:一个键,或不确定数目的参数,每一个关键的数组:key1 key2 key3 … keyN
// 返回值:删除的项数
$redis->delete(“goonls”);
$set_existent_string=$redis->get(‘goonls’);
//var_dump($set_existent_string);
//结果:bool(false)
// 6,setnx
// 描述:如果在数据库中不存在该键,设置关键值参数
// 参数:key value
// 返回值:BOOL 成功返回:TRUE;失败返回:FALSE

$set_string=$redis->set(“goonls.com”,’11111′);
//上面已经设置 goonls.com 的 值
// 下面重复设置将返回false
$setnx_string=$redis->setnx(“goonls.com”,’22222′);
//var_dump($setnx_string);//false
// 7,exists

// 描述:验证指定的键是否存在
// 参数key
// 返回值:Bool 成功返回:TRUE;失败返回:FALSE

$set_string=$redis->set(“goonls.com7”,’11111′);
//var_dump($redis->exists(‘goonls.com7′)); //结果:bool(true)

//8.GETSET

// 描述:先获取值 然后设置值
// 参数key value
// 返回值:Bool 成功返回:value;失败返回:FALSE

$set_string=$redis->set(“goonls.com8”,’GETSET’);

$goonls_com8=$redis->getset(‘goonls.com8′,’GETSET26’);
//var_dump($goonls_com8); //返回 GETSET
//echo $redis->get(‘goonls.com8’);
//9.incr

// 描述:数字递增存储键值键.
// 参数:key value:将被添加到键的值
// 返回值:INT the new value
// 实例:

if(!$redis->exists(‘goonls.com9’))
{
$redis->set(‘goonls.com9’,1);
}
else
{
$redis->incr(‘goonls.com9’);
}
echo $redis->get(‘goonls.com9’);

// 10,exists

// 描述:验证指定的键是否存在
// 参数key
// 返回值:Bool 成功返回:TRUE;失败返回:FALSE
// 范例:

// 复制代码 代码如下:

$redis->set(‘test’,’1111111111111′);
var_dump($redis->exists(‘test’)); //结果:bool(true)

?>

php实现图片点击直接下载


public function download(){
$path=SITE_PATH.'data/upload/'.I("path");
// if(is_file($path))
// {
// echo "是";
// }
// else
// {
// echo "fou ";
// }

// print_r(basename($path));
// exit;
// echo dirname(__FILE__) ;
header("Content-type:octet/stream");

Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
header("Content-Length".filesize($path));
header("Content-disposition:attachment;filename=".basename($path).";");

echo readfile($path);
exit;
}

php实现图片点击直接下载 点击下载,下载图片

在制作网页的时候,经常会出现需要添加“下载”按钮,对于那些下载各类压缩包格式的文件来说,浏览器会直接下载;

浏览器能识别的格式会直接打开,不能识别的格式会采用下载的形式进行。

比如PDF和jpg,png图片等格式的文件,设置<a>标签href属性会将文件在页面中直接打开。如果href链接的是zip,rar等不能识别的格式,则会采用下载的形式。

如果想要实现,点击下载,图片不在页面中打开,而是下载的形式讲图片保存到本地,可以采用php的特性来做。(当然也可以是点击下载图片,图片在单独的页面中出现,然后再右键保存。这是方式用户体验不好,有些用户可能不知道该怎样把图片保存下来。)

方法一:

1.先建立一个单独的php文件:

1
2
3
4
5
6
7
8
<?php
    $file=$_GET['file'];
    header("Content-type:octet/stream");
    header("Content-disposition:attachment;filename=".$file.";");  
    header("Content-Length".filesize($file));
    readfile($file);
    exit;      
?>

2.在index.php文件里面插入一行代码:

$tpl->assign(“filenames”,$fileimages);

3.写好上面之后,在需要设置下载图片的<a>标签中直接调用即可。

调用方法:<a href=”www.abc.com/b.php?file=images/01.jpg”></a>

注:前面两步写好之后,不管是该域中那个页面调用都可以调用,只要“file=”后面的图片路径写对了就可以调用;

限制:这种方法对页面框架有限制,如果不是用php嵌套的框架,不方便使用这种方法。

移动设备wap手机网页html5通过特殊链接:打电话,发短信,发邮件详细教程

最近逍遥乐在寻找手机网页调用系统短信发送短信的功能,用于分享和发送信息。找了一圈,找到了,这里分享出来,记录一下!

如果需要在移动浏览器中实现拨打电话,调用sms发短信,发送email等功能,移动手机WEB页面(HTML5)Javascript提供的接口是一个好办法。

采用url href链接的方式,实现在Safari  ios,Android 浏览器,webos浏览器,塞班浏览器,IE,Operamini等主流浏览器,进行拨打电话功能。

 1. 拨打电话

在电话号码前面可以加上 + (加号)表示国际号码。如:

最常用WEB页面JS实现一键拨号的电话拨打功能

例子:

<a href="tel:10086">10086</a>

使用wtai协议进行拨打电话

 <a href="wtai://wp/mc;10086">10086</a>

2. 发送短信

如果是需要调用短信的接口,可以将链接写成下面的格式:

sms:<phone_number>[,<phone-number>]*[?body=<message_body>]

例如:

1)给 10086 发短信:
<a href="sms:10086">发送信息</a>
(2)给 10086 发送内容为"cxye"的短信:
<a href="sms:10086?body=cxye">发送信息</a>
(3)给 10086 和 10010 发送内容为"cxye"的短信:
<a href="sms:10086,10010?body=cxye">发送信息</a>

 

3. Mail 发送邮件

就和普通的html一样使用mailto

(1)给test1@163.com发送邮件:

<a href="mailto:test1@163.com">mail</a>

(2)给test1@163.com和test2@126.com发送邮件:
<a href="mailto:test1@163.com,test2@126.com">mail</a>
2)给test1@163.com发送主题为“testing”的邮件:
<a href="mailto:test1@163.com?subject=Testing">mail</a>
2)给test1@163.com发送主题为“testing”的邮件,并抄送给test3@126.com
<a href="mailto:test1@163.com?subject=Testing mailto&cc=test3@126.com">mail</a>

 

4. Android Market

如果希望一个链接能够激活Android市场的功能,可以把链接写成:

 <a href="market://search?q=[query]">Android Market link</a>

其中<query>就是搜索的内容,你应用的名称

例子:

<a href="market://search?q=MyApp">MyApp</a>

5. GPS地图定位

<a href="geopoint:[经度],[纬度]">我的位置</a>

例如:

<a href="geopoint:108.954823,34.275891">我的位置</a>

 

jquery 回到顶部

<html>
<head>
<title></title>
</head>
<body>
<style type=”text/css”>
.go-top-trigger {
width: 52px;
height: 52px;
cursor: pointer;
z-index: 10;
right: 13px;
bottom: 132px;
position: fixed;
background: url(https://gss0.bdstatic.com/5foIcy0a2gI2n2jgoY3K/n/nvn/static/news/imgs/go-top_b1fff84.png) no-repeat;
background-size: 52px auto;
-webkit-background-size: 52px auto;
background-position: right center;}
</style>
<div class=”go-top-trigger” style=”display:none;” ></div>

</body>
<script type=”text/javascript” src=”http://www.jq22.com/js/jquery.min.js”></script>
<script type=”text/javascript”>
$(function(){
$(window).scroll(function() {
if($(window).scrollTop() >= 300){
$(‘.go-top-trigger’).fadeIn(300);
}else{
$(‘.go-top-trigger’).fadeOut(300);
}
});
$(‘.go-top-trigger’).click(function(){
$(‘html,body’).animate({scrollTop: ‘0px’}, 800);});
});
</script>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
</html>

30个php操作redis常用方法代码例子

redis的操作很多的,以前看到一个比较全的博客,但是现在找不到了。查个东西搜半天,下面整理一下php处理redis的例子,个人觉得常用一些例子。下面的例子都是基于php-redis这个扩展的。

1,connect

描述:实例连接到一个Redis.
参数:host: string,port: int
返回值:BOOL 成功返回:TRUE;失败返回:FALSE

示例:

复制代码 代码如下:

var_dump($result); //结果:bool(true)
?>

2,set
描述:设置key和value的值
参数:Key Value
返回值:BOOL 成功返回:TRUE;失败返回:FALSE
示例:

复制代码 代码如下:

$result = $redis->set(‘test’,”11111111111″);
var_dump($result); //结果:bool(true)
?>

3,get

描述:获取有关指定键的值
参数:key
返回值:string或BOOL 如果键不存在,则返回 FALSE。否则,返回指定键对应的value值。
范例:

复制代码 代码如下:

$result = $redis->get(‘test’);
var_dump($result); //结果:string(11) “11111111111”
?>

4,delete

描述:删除指定的键
参数:一个键,或不确定数目的参数,每一个关键的数组:key1 key2 key3 … keyN
返回值:删除的项数
范例:

复制代码 代码如下:

$redis->set(‘test’,”1111111111111″);
echo $redis->get(‘test’); //结果:1111111111111
$redis->delete(‘test’);
var_dump($redis->get(‘test’)); //结果:bool(false)
?>

5,setnx

描述:如果在数据库中不存在该键,设置关键值参数
参数:key value
返回值:BOOL 成功返回:TRUE;失败返回:FALSE

范例:

复制代码 代码如下:

$redis->set(‘test’,”1111111111111″);
$redis->setnx(‘test’,”22222222″);
echo $redis->get(‘test’); //结果:1111111111111
$redis->delete(‘test’);
$redis->setnx(‘test’,”22222222″);
echo $redis->get(‘test’); //结果:22222222
?>

6,exists

描述:验证指定的键是否存在
参数key
返回值:Bool 成功返回:TRUE;失败返回:FALSE
范例:

复制代码 代码如下:

$redis->set(‘test’,”1111111111111″);
var_dump($redis->exists(‘test’)); //结果:bool(true)
?>

7,incr

描述:数字递增存储键值键.
参数:key value:将被添加到键的值
返回值:INT the new value
实例:

复制代码 代码如下:

$redis->set(‘test’,”123″);
var_dump($redis->incr(“test”)); //结果:int(124)
var_dump($redis->incr(“test”)); //结果:int(125)
?>

8,decr

描述:数字递减存储键值。
参数:key value:将被添加到键的值
返回值:INT the new value
实例:

复制代码 代码如下:

$redis->set(‘test’,”123″);
var_dump($redis->decr(“test”)); //结果:int(122)
var_dump($redis->decr(“test”)); //结果:int(121)
?>

9,getMultiple

描述:取得所有指定键的值。如果一个或多个键不存在,该数组中该键的值为假
参数:其中包含键值的列表数组
返回值:返回包含所有键的值的数组
实例:

复制代码 代码如下:

$redis->set(‘test1’,”1″);
$redis->set(‘test2’,”2″);
$result = $redis->getMultiple(array(‘test1′,’test2’));
print_r($result); //结果:Array ( [0] => 1 [1] => 2 )
?>

10,lpush

描述:由列表头部添加字符串值。如果不存在该键则创建该列表。如果该键存在,而且不是一个列表,返回FALSE。
参数:key,value
返回值:成功返回数组长度,失败false
实例:

复制代码 代码如下:

$redis->delete(‘test’);
var_dump($redis->lpush(“test”,”111″)); //结果:int(1)
var_dump($redis->lpush(“test”,”222″)); //结果:int(2)
?>

11,rpush

描述:由列表尾部添加字符串值。如果不存在该键则创建该列表。如果该键存在,而且不是一个列表,返回FALSE。
参数:key,value
返回值:成功返回数组长度,失败false
范例:

复制代码 代码如下:

$redis->delete(‘test’);
var_dump($redis->lpush(“test”,”111″)); //结果:int(1)
var_dump($redis->lpush(“test”,”222″)); //结果:int(2)
var_dump($redis->rpush(“test”,”333″)); //结果:int(3)
var_dump($redis->rpush(“test”,”444″)); //结果:int(4)
?>

12,lpop

描述:返回和移除列表的第一个元素
参数:key
返回值:成功返回第一个元素的值 ,失败返回false
范例:

复制代码 代码如下:

$redis->delete(‘test’);
$redis->lpush(“test”,”111″);
$redis->lpush(“test”,”222″);
$redis->rpush(“test”,”333″);
$redis->rpush(“test”,”444″);
var_dump($redis->lpop(“test”)); //结果:string(3) “222”
?>

13,lsize,llen

描述:返回的列表的长度。如果列表不存在或为空,该命令返回0。如果该键不是列表,该命令返回FALSE。
参数:Key
返回值:成功返回数组长度,失败false
范例:

复制代码 代码如下:

$redis->delete(‘test’);
$redis->lpush(“test”,”111″);
$redis->lpush(“test”,”222″);
$redis->rpush(“test”,”333″);
$redis->rpush(“test”,”444″);
var_dump($redis->lsize(“test”)); //结果:int(4)
?>

14,lget

描述:返回指定键存储在列表中指定的元素。 0第一个元素,1第二个… -1最后一个元素,-2的倒数第二…错误的索引或键不指向列表则返回FALSE。
参数:key index
返回值:成功返回指定元素的值,失败false
范例:

复制代码 代码如下:

$redis->delete(‘test’);
$redis->lpush(“test”,”111″);
$redis->lpush(“test”,”222″);
$redis->rpush(“test”,”333″);
$redis->rpush(“test”,”444″);
var_dump($redis->lget(“test”,3)); //结果:string(3) “444”
?>

15,lset

描述:为列表指定的索引赋新的值,若不存在该索引返回false.
参数:key index value
返回值:成功返回true,失败false
范例:

复制代码 代码如下:

$redis->delete(‘test’);
$redis->lpush(“test”,”111″);
$redis->lpush(“test”,”222″);
var_dump($redis->lget(“test”,1)); //结果:string(3) “111”
var_dump($redis->lset(“test”,1,”333″)); //结果:bool(true)
var_dump($redis->lget(“test”,1)); //结果:string(3) “333”
?>

16,lgetrange

描述:
返回在该区域中的指定键列表中开始到结束存储的指定元素,lGetRange(key, start, end)。0第一个元素,1第二个元素… -1最后一个元素,-2的倒数第二…
参数:key start end
返回值:成功返回查找的值,失败false
范例:

复制代码 代码如下:

$redis->delete(‘test’);
$redis->lpush(“test”,”111″);
$redis->lpush(“test”,”222″);
print_r($redis->lgetrange(“test”,0,-1)); //结果:Array ( [0] => 222 [1] => 111 )
?>

17,lremove

描述:从列表中从头部开始移除count个匹配的值。如果count为零,所有匹配的元素都被删除。如果count是负数,内容从尾部开始删除。
参数:key count value
返回值:成功返回删除的个数,失败false
范例:

复制代码 代码如下:

$redis->delete(‘test’);
$redis->lpush(‘test’,’a’);
$redis->lpush(‘test’,’b’);
$redis->lpush(‘test’,’c’);
$redis->rpush(‘test’,’a’);
print_r($redis->lgetrange(‘test’, 0, -1)); //结果:Array ( [0] => c [1] => b [2] => a [3] => a )
var_dump($redis->lremove(‘test’,’a’,2)); //结果:int(2)
print_r($redis->lgetrange(‘test’, 0, -1)); //结果:Array ( [0] => c [1] => b )
?>

18,sadd

描述:为一个Key添加一个值。如果这个值已经在这个Key中,则返回FALSE。
参数:key value
返回值:成功返回true,失败false
范例:

复制代码 代码如下:

$redis->delete(‘test’);
var_dump($redis->sadd(‘test’,’111′)); //结果:bool(true)
var_dump($redis->sadd(‘test’,’333′)); //结果:bool(true)
print_r($redis->sort(‘test’)); //结果:Array ( [0] => 111 [1] => 333 )
?>

19,sremove

描述:删除Key中指定的value值
参数:key member
返回值:true or false
范例:

复制代码 代码如下:

$redis->delete(‘test’);
$redis->sadd(‘test’,’111′);
$redis->sadd(‘test’,’333′);
$redis->sremove(‘test’,’111′);
print_r($redis->sort(‘test’)); //结果:Array ( [0] => 333 )
?>

20,smove

描述:将Key1中的value移动到Key2中
参数:srcKey dstKey member
返回值:true or false
范例

复制代码 代码如下:

$redis->delete(‘test’);
$redis->delete(‘test1’);
$redis->sadd(‘test’,’111′);
$redis->sadd(‘test’,’333′);
$redis->sadd(‘test1′,’222’);
$redis->sadd(‘test1′,’444’);
$redis->smove(‘test’,”test1″,’111′);
print_r($redis->sort(‘test1’)); //结果:Array ( [0] => 111 [1] => 222 [2] => 444 )
?>

21,scontains

描述:检查集合中是否存在指定的值。
参数:key value
返回值:true or false
范例:

复制代码 代码如下:

$redis->delete(‘test’);
$redis->sadd(‘test’,’111′);
$redis->sadd(‘test’,’112′);
$redis->sadd(‘test’,’113′);
var_dump($redis->scontains(‘test’, ‘111’)); //结果:bool(true)
?>

22,ssize

描述:返回集合中存储值的数量
参数:key
返回值:成功返回数组个数,失败0
范例:

复制代码 代码如下:

$redis->delete(‘test’);
$redis->sadd(‘test’,’111′);
$redis->sadd(‘test’,’112′);
echo $redis->ssize(‘test’); //结果:2
?>

23,spop

描述:随机移除并返回key中的一个值
参数:key
返回值:成功返回删除的值,失败false
范例:

复制代码 代码如下:

$redis->delete(‘test’);
$redis->sadd(“test”,”111″);
$redis->sadd(“test”,”222″);
$redis->sadd(“test”,”333″);
var_dump($redis->spop(“test”)); //结果:string(3) “333”
?>

24,sinter

描述:返回一个所有指定键的交集。如果只指定一个键,那么这个命令生成这个集合的成员。如果不存在某个键,则返回FALSE。
参数:key1, key2, keyN
返回值:成功返回数组交集,失败false
范例:

复制代码 代码如下:

$redis->delete(‘test’);
$redis->sadd(“test”,”111″);
$redis->sadd(“test”,”222″);
$redis->sadd(“test”,”333″);
$redis->sadd(“test1″,”111”);
$redis->sadd(“test1″,”444”);
var_dump($redis->sinter(“test”,”test1″)); //结果:array(1) { [0]=> string(3) “111” }
?>

25,sinterstore

描述:执行sInter命令并把结果储存到新建的变量中。
参数:
Key: dstkey, the key to store the diff into.
Keys: key1, key2… keyN. key1..keyN are intersected as in sInter.
返回值:成功返回,交集的个数,失败false
范例:

复制代码 代码如下:

$redis->delete(‘test’);
$redis->sadd(“test”,”111″);
$redis->sadd(“test”,”222″);
$redis->sadd(“test”,”333″);
$redis->sadd(“test1″,”111”);
$redis->sadd(“test1″,”444″);
var_dump($redis->sinterstore(‘new’,”test”,”test1″)); //结果:int(1)
var_dump($redis->smembers(‘new’)); //结果:array(1) { [0]=> string(3) “111” }
?>

26,sunion

描述:
返回一个所有指定键的并集
参数:
Keys: key1, key2, … , keyN
返回值:成功返回合并后的集,失败false
范例:

复制代码 代码如下:

$redis->delete(‘test’);
$redis->sadd(“test”,”111″);
$redis->sadd(“test”,”222″);
$redis->sadd(“test”,”333″);
$redis->sadd(“test1″,”111”);
$redis->sadd(“test1″,”444”);
print_r($redis->sunion(“test”,”test1″)); //结果:Array ( [0] => 111 [1] => 222 [2] => 333 [3] => 444 )
?>

27,sunionstore

描述:执行sunion命令并把结果储存到新建的变量中。
参数:
Key: dstkey, the key to store the diff into.
Keys: key1, key2… keyN. key1..keyN are intersected as in sInter.
返回值:成功返回,交集的个数,失败false
范例:

复制代码 代码如下:

$redis->delete(‘test’);
$redis->sadd(“test”,”111″);
$redis->sadd(“test”,”222″);
$redis->sadd(“test”,”333″);
$redis->sadd(“test1″,”111”);
$redis->sadd(“test1″,”444″);
var_dump($redis->sinterstore(‘new’,”test”,”test1″)); //结果:int(4)
print_r($redis->smembers(‘new’)); //结果:Array ( [0] => 111 [1] => 222 [2] => 333 [3] => 444 )
?>

28,sdiff

描述:返回第一个集合中存在并在其他所有集合中不存在的结果
参数:Keys: key1, key2, … , keyN: Any number of keys corresponding to sets in redis.
返回值:成功返回数组,失败false
范例:

复制代码 代码如下:

$redis->delete(‘test’);
$redis->sadd(“test”,”111″);
$redis->sadd(“test”,”222″);
$redis->sadd(“test”,”333″);
$redis->sadd(“test1″,”111”);
$redis->sadd(“test1″,”444”);
print_r($redis->sdiff(“test”,”test1″)); //结果:Array ( [0] => 222 [1] => 333 )
?>

29,sdiffstore

描述:执行sdiff命令并把结果储存到新建的变量中。
参数:
Key: dstkey, the key to store the diff into.
Keys: key1, key2, … , keyN: Any number of keys corresponding to sets in redis
返回值:成功返回数字,失败false
范例:

复制代码 代码如下:

$redis->delete(‘test’);
$redis->sadd(“test”,”111″);
$redis->sadd(“test”,”222″);
$redis->sadd(“test”,”333″);
$redis->sadd(“test1″,”111”);
$redis->sadd(“test1″,”444″);
var_dump($redis->sdiffstore(‘new’,”test”,”test1″)); //结果:int(2)
print_r($redis->smembers(‘new’)); //结果:Array ( [0] => 222 [1] => 333 )
?>

30,smembers, sgetmembers

描述:
返回集合的内容
参数:Key: key
返回值:An array of elements, the contents of the set.
范例:

复制代码 代码如下:

$redis->delete(‘test’);
$redis->sadd(“test”,”111″);
$redis->sadd(“test”,”222″);
print_r($redis->smembers(‘test’)); //结果:Array ( [0] => 111 [1] => 222 )
?>

php-redis当中,有很多不同名字,但是功能一样的函数,例如:lrem和lremove,这里就不例举了