Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie den Browserverlauf in PHP

So implementieren Sie den Browserverlauf in PHP

藏色散人
藏色散人Original
2021-11-02 09:56:412671Durchsuche

So implementieren Sie Browsing-Datensätze in PHP: 1. Legen Sie die Anfangsdaten fest. 3. Bestimmen Sie, ob Browsing-Datensätze vorhanden sind. 5. Lesen Sie die Cookie-Datensätze.

So implementieren Sie den Browserverlauf in PHP

Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.1, DELL G3-Computer

Wie erreiche ich den Browserverlauf in PHP?

PHP implementiert historische Browsing-Datensätze

Tatsächlich ist das Prinzip sehr einfach, nämlich die Verwendung von Cookies zum Erreichen der Aufzeichnung. Der Punkt, der beachtet werden muss, besteht darin, die zu speichernde Cookie-Länge und Aufzeichnungszeit festzulegen Im Folgenden finden Sie die Grundlagen der CI-Framework-Implementierung

Wenn Sie bessere Ideen für die Implementierung haben, kommentieren und diskutieren Sie bitte.

/**
 * @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);
 
}

 Das Obige dient der Implementierung der Cookie-Aufzeichnungsfunktion, und das Folgende ist die Methode zum Lesen der Cookie-Aufzeichnung:

/**
 * @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;
}

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo implementieren Sie den Browserverlauf in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn