Bagaimana untuk melaksanakan sejarah penyemakan imbas dalam php

藏色散人
Lepaskan: 2023-03-13 16:30:02
asal
2694 orang telah melayarinya

Cara melaksanakan rekod penyemakan imbas dalam PHP: 1. Tetapkan data awal; 3. Tentukan sama ada rekod penyemakan imbas wujud; Rakam sahaja.

Bagaimana untuk melaksanakan sejarah penyemakan imbas dalam php

Persekitaran pengendalian artikel ini: sistem Windows 7, PHP versi 7.1, komputer DELL G3

Cara mencapai sejarah penyemakan imbas dalam php?

PHP melaksanakan rekod penyemakan imbas sejarah

Malah, prinsipnya sangat mudah, iaitu menggunakan kuki untuk mencapai rakaman anda perlu menyediakannya Tempoh kuki yang disimpan dan masa rakaman Berikut ialah pelaksanaan asas rangka kerja ci

Jika anda mempunyai idea yang lebih baik untuk pelaksanaan, sila ulas dan bincang.

/**
 * @desc    设置cookie浏览记录
 * @date    2018-04-15 16:48:22
 * @param   [string $type记录浏览类型【as 查看记录表1;ps 查看记录表2】;int $id主键id]
 * @author  1245049149@qq.com
 * @return  [type]
 */
public function set_cookie_history($type,$id){
 
    //设置初始数据
    $set_limit = 5; //浏览记录的容量限制
 
    //初始数据过滤
    if(!in_array($type,['as','ps'])){
        return false;
    }
 
    //获取cookie记录
    $string = $type.$id;
    $history_array = unserialize($_COOKIE['cookie_history']);
    if(!$history_array)
        $history_array = [];
 
    //浏览记录存在
    if(in_array($string,$history_array)){
        unset($history_array[array_search($string , $history_array)]); //删除存在
        array_unshift($history_array,$string);//重新放在第一个
 
    //浏览记录不存在
    }else{
 
        //没有超过记录的容量限制,直接放在第一个
        if(count($history_array)<$set_limit){
            array_unshift($history_array,$string);
 
        //超过记录的容量限制,删除最后一个,然后放在第一个
        }else{
            array_pop($history_array);
            array_unshift($history_array,$string);
        }
    }
 
    //将浏览数组序列化后写入cookie
    $expire_time = 3600 * 24 * 30; //过期时间
    $cookie_domain = $this->config->item(&#39;cookie_domain&#39;);
    $history_array = serialize($history_array);
    setcookie(&#39;cookie_history&#39;, $history_array, time()+$expire_time, &#39;/&#39;, $cookie_domain);
 
}
Salin selepas log masuk

Perkara di atas adalah untuk melaksanakan fungsi rakaman kuki, dan berikut ialah kaedah untuk membaca rekod kuki:

/**
 * @desc    获取cookie浏览记录
 * @date    2018-04-15 17:42:51
 * @param   [type]
 * @author  1245049149@qq.com
 * @return  [array $return_data]
 */
public function get_cookie_history(){
    //设置初始返回数据
    $return_data = [];
 
    //获取cookie记录
    $history_array = unserialize($_COOKIE[&#39;cookie_history&#39;]);
    if(!$history_array)
        return $return_data;
 
    if($history_array){
        foreach($history_array as $k=>$v){
 
            //切割判断是否是as类型
            $as_temp = explode(&#39;as&#39;,$v);
            if($as_temp && $as_temp[1]){
                //这里写,你要查询的sql语句
                $sql = "select field1,field2 from table_test1 where id={$as_temp[1]}";
                $res = $this->db->query($sql)->row_array();
                if($res)
                    $return_data[] = [&#39;type&#39; => &#39;as&#39;,&#39;data&#39; => $res];
            }
 
            //切割判断是否是ps类型
            $ps_temp = explode(&#39;ps&#39;,$v);
            if($ps_temp && $ps_temp[1]){
                //这里写,你要查询的sql语句
                $sql = "select field1,field2 from table_test2 where id={$as_temp[1]}";
                $res = $this->db->query($sql)->row_array();
                if($res)
                    $return_data[] = [&#39;type&#39; => &#39;ps&#39;,&#39;data&#39; => $res];
            }
        }
        return $return_data;
    }
 
    //非法获取数据,直接返回
    return $return_data;
}
Salin selepas log masuk

Pembelajaran yang disyorkan: "Tutorial Video PHP "

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan sejarah penyemakan imbas dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
php
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan