取消设置具有相似名称的所有会话变量
Unset all session variables with similar name
我正在使用一些 $_SESSION
变量来过滤许多具有相似名称的查询记录(例如 $_SESSION['nameFilter']
或 $_SESSION['cityFilter']
等等)。
我正在使用 link 来重置这些过滤器,但我想知道是否有办法取消设置所有 $_SESSION
名称如下的变量:
$_SESSION[(somewords)Filter]
使用 foreach
to enumerate the keys of $_SESSION[]
, use substr()
to get the last 6 characters of each key, use unset()
(还有什么?)取消设置。
简单如:
session_start();
foreach (array_keys($_SESSION) as $key) {
if (substr($key, -6) == 'Filter') {
unset($_SESSION[$key]);
}
}
步骤:
1.) Get all session variable using $_SESSION.
2.) Check in every session key if it contain "Filter" string
then unset it using unset($_SESSION[(someword)Filter]);
试试这个:
foreach($_SESSION as $key => $value){
if (strstr($key, 'Filter') == 'Filter') {
unset($_SESSION[$key]);
}
}
假设您的密钥始终包含字符串 Filter
您可以检查它。
我建议您看一下 strpos 函数,该函数检查给定的针是否在字符串中同时存在,returns null
以防找不到或针在该字符串中开始的位置。
然后你只需要遍历会话变量并取消设置包含单词 Filter
的变量
foreach($_SESSION as $key => $value){
if (strpos($key, 'Filter') !== false) {
unset($_SESSION[$key]);
}
}
希望这对您有所帮助:)
您需要检查每个存在的会话并检查其名称。请检查下面的示例代码。
<?php
session_start();
//Example records...
$_SESSION['onefilter'] = 'one';
$_SESSION['twofilter'] = 'two';
$_SESSION['threefilter'] = 'three';
$_SESSION['fourtilter'] = 'four';
//Loop untill exist session...
foreach($_SESSION AS $sessKey => $sessValue){
//Check for session name exist with 'filter' text...
if (strpos($sessKey, 'filter') !== false) {
unset($_SESSION[$sessKey]);//Unset session
}
}
echo '<pre>' . print_r($_SESSION, TRUE) . '</pre>';
/*Output...
Array
(
[fourtilter] => four
)
*/
?>
希望对你有帮助。
我正在使用一些 $_SESSION
变量来过滤许多具有相似名称的查询记录(例如 $_SESSION['nameFilter']
或 $_SESSION['cityFilter']
等等)。
我正在使用 link 来重置这些过滤器,但我想知道是否有办法取消设置所有 $_SESSION
名称如下的变量:
$_SESSION[(somewords)Filter]
使用 foreach
to enumerate the keys of $_SESSION[]
, use substr()
to get the last 6 characters of each key, use unset()
(还有什么?)取消设置。
简单如:
session_start();
foreach (array_keys($_SESSION) as $key) {
if (substr($key, -6) == 'Filter') {
unset($_SESSION[$key]);
}
}
步骤:
1.) Get all session variable using $_SESSION.
2.) Check in every session key if it contain "Filter" string
then unset it using unset($_SESSION[(someword)Filter]);
试试这个:
foreach($_SESSION as $key => $value){
if (strstr($key, 'Filter') == 'Filter') {
unset($_SESSION[$key]);
}
}
假设您的密钥始终包含字符串 Filter
您可以检查它。
我建议您看一下 strpos 函数,该函数检查给定的针是否在字符串中同时存在,returns null
以防找不到或针在该字符串中开始的位置。
然后你只需要遍历会话变量并取消设置包含单词 Filter
foreach($_SESSION as $key => $value){
if (strpos($key, 'Filter') !== false) {
unset($_SESSION[$key]);
}
}
希望这对您有所帮助:)
您需要检查每个存在的会话并检查其名称。请检查下面的示例代码。
<?php
session_start();
//Example records...
$_SESSION['onefilter'] = 'one';
$_SESSION['twofilter'] = 'two';
$_SESSION['threefilter'] = 'three';
$_SESSION['fourtilter'] = 'four';
//Loop untill exist session...
foreach($_SESSION AS $sessKey => $sessValue){
//Check for session name exist with 'filter' text...
if (strpos($sessKey, 'filter') !== false) {
unset($_SESSION[$sessKey]);//Unset session
}
}
echo '<pre>' . print_r($_SESSION, TRUE) . '</pre>';
/*Output...
Array
(
[fourtilter] => four
)
*/
?>
希望对你有帮助。