PHP Helper类,用于从要传递给url的数组生成散列键

时间:2015-04-03 18:02:55

标签: php hash md5 yii2

Helper Class,用于根据数组的值生成唯一键。 我有一个主页搜索表单,用户可以选择不同的选项进入下一页。如果我在会话中保存搜索,则用户无法在新选项卡中打开多个订单。唯一的解决方案是传递URL中的搜索字段。由于url长度有限制。我想生成搜索数据的哈希值并将其传递给url。有没有更好的方法来生成哈希值。

我发现只有简单的解决方案是使用md5生成密钥的woocommerce cart密钥生成。

class HashKey extends Object
{

    public $model;
    public $hashkey;

    public function __construct($model)
    {
            $attributes = $model->getAttributes();
            if ( is_array( $attributes ) && ! empty( $attributes ) ) {
                $hashkey = '';
                foreach ( $attributes as $key => $value ) {
                    if ( is_array( $value ) ) $value = http_build_query( $value );
                    $hashkey .= trim($key) . trim($value);
                }
                $id_parts[] = $hashkey;
            }


        $this->hashkey = md5( implode( '_', $id_parts ) );

    }

    /**
     * String magic method
     * @return string the DB expression
     */
    public function __toString()
    {
        return $this->hashkey;
    }
}

0 个答案:

没有答案