替换字符串中的数字后出现不需要的数字组合

发布于 2024-09-05 17:34:28 字数 806 浏览 9 评论 0原文

我得到了不需要的数字组合。

($_COOKIE):

2、3、4、5、6、7、8、901234567890123456789、30

应为 ($_COOKIE):

1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12...(直到)30

$_Get['id']="1"; (抱歉,忘了发布。)

为什么会发生这种情况?

代码:

<?
ob_start(); 
$id=$_GET['id'];
if (!empty($id)){
    $id=str_replace('a9_','', $id);
    $value=$_COOKIE['NaudingasURL'];
    $exp = explode(", ", $value);
    if(in_array($id, $exp)){
        $value2=str_replace(', '.$id,"", ', '.$value);
        $value2=substr($value2, 2, strlen($value2));
        echo'r';
    }
    else{
        $value2=$value.', '.$id; echo'a';
    }
setcookie("NaudingasURL", $value2);
}
ob_end_flush();
?>

我用Jquery ajax 调用它,但我不认为这是问题所在。

I get an unneeded number combination.

($_COOKIE):

2, 3, 4, 5, 6, 7, 8, 901234567890123456789, 30

Should be ($_COOKIE):

1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12... (till) 30

$_Get['id']="1"; (sorry, forgot to post it.)

Why that happens?

The code:

<?
ob_start(); 
$id=$_GET['id'];
if (!empty($id)){
    $id=str_replace('a9_','', $id);
    $value=$_COOKIE['NaudingasURL'];
    $exp = explode(", ", $value);
    if(in_array($id, $exp)){
        $value2=str_replace(', '.$id,"", ', '.$value);
        $value2=substr($value2, 2, strlen($value2));
        echo'r';
    }
    else{
        $value2=$value.', '.$id; echo'a';
    }
setcookie("NaudingasURL", $value2);
}
ob_end_flush();
?>

I'm calling it with Jquery ajax, but I don't thinks that's the problem.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

晨光如昨 2024-09-12 17:34:28

您将用空字符串替换每个“,1”。所以 10 将是 0 等等...

但我不明白你到底想实现什么?

好吧,如果是 Max 所说的,那么你可以这样做:

$exp = explode(", ", $value);
if(in_array($id, $exp)){
    for ($i=0; $i<count($exp); $i++) {
      if ($exp[$i] == $id) {
         unset($exp[$i]);
      }
    }
    $value2 = implode(", ", $exp);
}
else{
    $value2 = implode(", ", $exp).', '.$id;
}

You are replacing every ",1" with and empty string. So 10 will be 0 and so on...

But i dont understand what exactly you want to achieve?

Ok, if it was what Max said, that you could do it like this:

$exp = explode(", ", $value);
if(in_array($id, $exp)){
    for ($i=0; $i<count($exp); $i++) {
      if ($exp[$i] == $id) {
         unset($exp[$i]);
      }
    }
    $value2 = implode(", ", $exp);
}
else{
    $value2 = implode(", ", $exp).', '.$id;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文