如何使用PHP或JS从Cookie字符串中获取特定值?

时间:2018-08-30 08:08:36

标签: javascript php string cookies

我使用的插件将多个值存储在一个字符串中。

var_dump看起来像这样:

{\"strict\":\"0\",\"thirdparty\":\"1\",\"advanced\":\"0\"} 

我需要检查例如“ advanced”是否正确。

用php做的很棒,JS也很好。

3 个答案:

答案 0 :(得分:0)

    $jsIn = '{\"strict\":\"0\",\"thirdparty\":\"1\",\"advanced\":\"0\"} ';
    $jsOut = json_decode(stripslashes($jsIn));

答案 1 :(得分:0)

<?php
    $input = '{\"strict\":\"0\",\"thirdparty\":\"1\",\"advanced\":\"0\"}';
    $input = str_replace('\', '', $input);
    $input = json_decode($input, true);
    $advanced = empty($input['advanced']);

如果您的字符串包含反斜杠,则必须将其删除。在此之后,使用PHP#str_replace解码json字符串以具有关联数组,最后用$input['advanced']测试PHP#empty并返回false为false,0,null或'0 '值,否则为true。

答案 2 :(得分:0)

问题已解决,可以正常工作。 因此,首先,我们使用 stripslashes()除去字符串中该cookie的值中的反斜杠,在wordpress中使用 wp_unslash()。在 json_decode()之后,我们可以访问(在这种情况下)三个项目(严格,第三方,高级),其值可以为 0 1 。 现在,在 var_dump()中,每个项目在实际值之前都包含 string(1)

string(1) "1" 
string(1) "0" 

尽管如此,IF语句仍然可以正常工作。

$input = json_decode( stripslashes( $_COOKIE['some-cookie'] ), true );
$thirdparty = $input['thirdparty'];
$advanced = $input ['advanced'];

var_dump( $thirdparty );
echo "<br>";
var_dump( $advanced );
echo "<br>";

if ($thirdparty > 0) {
    echo "allowed";
} else {
    echo "not allowed";
}

echo "<br>";

if ($advanced > 0) {
    echo "allowed";
} else {
    echo "not allowed";
}

非常感谢大家...