php - 如何在 Codeigniter 中按页码取消设置 session 数据最多 n 页?

标签 php codeigniter session

$this->session->unset_userdata('current_page_'.$pagenumber);

通过使用此代码,我正在为每个页码从 session 中取消设置数据,但问题是在某些时候我不知道 session 中存在多少页数据,例如:

$this->session->unset_userdata('current_page_'.1);
$this->session->unset_userdata('current_page_'.2);
$this->session->unset_userdata('current_page_'.3);
$this->session->unset_userdata('current_page_'.4);
.
.
.
$this->session->unset_userdata('current_page_'.?????);

是否有任何方法可以取消设置 session 中的数据,其中键为“current_page_%” 提前致谢。

最佳答案

您可以尝试搜索 session 的首字母(即current_page_)并相应地取消设置。

<?php
function startsWith($haystack, $needle) {
    // search backwards starting from haystack length characters from the end
    return $needle === "" || strrpos($haystack, $needle, -strlen($haystack)) !== FALSE;
}

foreach($this->session->all_userdata() as $key => $value)
{
    if(startsWith($key, 'current_page_'))
        $this->session->unset_userdata($key);
}


例如:

<?php
function startsWith($haystack, $needle) {
    // search backwards starting from haystack length characters from the end
    return $needle === "" || strrpos($haystack, $needle, -strlen($haystack)) !== FALSE;
}

$session = array(
            'current_page_12' => 'abc', 
            'current_page_qw1' => 'xyz', 
            'hello' => 'world', 
            'current_page_23d' => 'mno', 
            'example' => '112'
        );

foreach($session as $key => $value)
{
    if(startsWith($key, 'current_page_'))
        unset($session[$key]);
}

print_r($session);


输出:

Array
(
    [hello] => world
    [example] => 112
)


演示:
http://3v4l.org/uh4HK

关于php - 如何在 Codeigniter 中按页码取消设置 session 数据最多 n 页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28556717/

相关文章:

php - 具有自定义值的 CActiveDataProvider

javascript - Twitter API 接受关注请求

php - setcookie() : Passing null to parameter #7 ($httponly) of type bool is deprecated

session - 如何在grails中实现cookie、用户跟踪?

java - 如何在 Google App Engine (Java) 中启用 session 支持?

使用 ssh2_scp_send 的 PHP 脚本无法创建远程文件

javascript - 如何在 php 中使用 javascript 代码?

php - 如何使用 Codeigniter 中的 Join 进行更新查询

php - 在特定时间间隔向客户发送电子邮件

java - 我应该使用 session 来实现搜索框吗?