尝试使用php和redis内爆字符串

时间:2013-04-18 08:14:55

标签: php redis

这是我的php文件: -

    <?php
    require "predis-0.8/autoload.php";
    Predis\Autoloader::register();
    try {
        $redis = new Predis\Client();
        }catch (Exception $e) {
    };
    $redis->del("aaa");
    for($i=1;$i<=10;$i++)
    {
    $randNo=rand('1','5');
    $ec = $redis->set("arr",$randNo);
    $str = $redis->get("arr").",";
    echo ($str);
    }
    $comma = implode(",", $str);
    echo ($comma);
?>

我正在使用Redis和PHP 我试图破坏strint 但它不起作用。
还给我错误。 Warning: implode(): Invalid arguments passed
知道为什么我会收到这个警告。
提前谢谢。

2 个答案:

答案 0 :(得分:0)

您正在寻找的功能explode而不是implode

implode采用数组并将元素与之间的给定字符串连接在一起。

explode接受一个字符串,并通过删除该字符串将其拆分为找到给定字符串的位置的数组。

$arr = array( 'foo', 'bar');
$imp = implode(',', $arr); # $imp == 'foo,bar'
$exp = explode(',', $imp); # $exp == array('foo', 'bar')

编辑:

进一步阅读您的代码后。我猜你试图在redis中存储一个数组。 要实现这一点(甚至更复杂的数据结构),您需要将数据转换为字符串。实现此目标的最简单方法是serializeunserialize

$data; # contains some data , either array or objects or int or ...
$redis->set('foo', serialize($data));
$other_data = unserialize($redis->get('foo')); # $other_data == $data

答案 1 :(得分:-2)