ThinkPHP常用方法

秋夜雨巷發表於2024-03-08

對稱加密

對稱加密可以用來把登入使用者的 id 和 name 等少數資訊http_build_query成一個字串加密後放入 cookie 中。

    public function encryptString($content, $key)
    {
        return openssl_encrypt($content, 'AES-128-ECB', $key);
    }

    public function decryptString($content, $key)
    {
        return openssl_decrypt($content, 'AES-128-ECB', $key);
    }

呼叫

//待加密字串
$queryString = 'id=1&name=John+Doe&age=22&city=%E5%8D%8E%E7%9B%9B%E9%A1%BF';
//加密
$encStr = openssl_encrypt($queryString, 'AES-128-ECB', 'key123');
echo $encStr . PHP_EOL;
//解密
$deStr = openssl_decrypt($encStr, 'AES-128-ECB', 'key123');
echo $deStr . PHP_EOL;

image

http_build_query & parse_str

http_build_query 將該陣列或物件轉換成一個經過 URL 編碼的查詢字串。
parse_str 將查詢字串轉換成陣列或物件。

$data = array(
    'name' => 'John Doe',
    'age' => 22,
    'city' => 'New York'
);
//將陣列轉換為url的查詢部分
$queryString = http_build_query($data);
echo $queryString . PHP_EOL;
//將 ur拼接字串 轉換成陣列
parse_str($queryString, $res);
print_r($res);

執行後返回
image

Cookie物件

// 在 cookie 中設定 access_token 值
Cookie::set('access_token', $accessToken, Config::get('app.default_logout_time'));
// 從 cookie 中獲取accessToken
$accessToken = Cookie::get('access_token');

DB 鏈式呼叫

Db 物件鏈式呼叫查詢資料。

                $list = Db::name('table1')
                    ->alias("a")
                    ->field("a.*,c.col2")
                    ->where($where)
                    ->join("table2 c", "a.col1 = c.id", "left")
                    ->order(["create_time" => "desc"])
                    ->paginate($param["limit"], false, [$param["page"]]);

相關文章