php 将所有会话值转换为字符串

amrnrhlw  于 2023-05-12  发布在  PHP
关注(0)|答案(4)|浏览(125)

hi我在我的项目中有许多会话值,我使用会话的syntext是

$_SESSION['username'] = $somevalue;

这个东西是在5月的页面实现的,大约有2000页。现在我想把这个替换成

$_SESSION['username'] = (string)$somevalue

在所有页面同时。我怎么能在dreamwaver中做到这一点。请帮帮我。在我的页面中使用了许多不同的会话值。
有没有办法把所有的会话值同时转换成字符串。我指的是任何正则表达式方法,比如$_SESSION[.] =(string)。或任何其它方法。请告诉我。
谢谢

6xfqseft

6xfqseft1#

这取决于你使用的是什么版本的PHP。对于>=5.3,使用Peter的版本,对于<5.3,使用

function stringify($item)
{
    return (string)$item;
}

$_SESSION = array_map('stringify', $_SESSION);
sf6xfgos

sf6xfgos2#

array_map函数可能是您正在寻找的:

$_SESSION = array_map(function($item) { return (string)$item; }, $_SESSION);

PHP 5.3需要匿名函数,在早期版本中,您必须将函数名称作为第一个参数传递。

mrwjdhj3

mrwjdhj33#

以防你想在你的2000个代码文件中 *,而不是在脚本中运行时转换值:不知道Dreamweaver是否支持正则表达式搜索和替换以及反向引用字符是什么。但是试试换掉这个

\$_SESSION\['[^']+'\]\s*=\s*

用这个:

$0(string)

$0是匹配模式的反向引用。如果这不起作用,请尝试\0\\0

plupiseo

plupiseo4#

您可以用途:session_encode()
“session_encode -将当前会话数据编码为会话编码字符串”https://www.php.net/manual/en/function.session-encode.php

在使用session_encode()之前必须调用session_start()。)*

session_start();
    
    $_SESSION['login_ok'] = true;
    $_SESSION['nome'] = 'sica';
    $_SESSION['inteiro'] = 34;
    
    echo session_encode();
    
    this code will print
    
    login_ok|b:1;nome|s:4:"sica";inteiro|i:34;

相关问题