php str_替换不工作。。。?

php str_替换不工作。。。?,php,str-replace,Php,Str Replace,我被困了几个小时,老实说,我不明白为什么。。。我得到了一个str_replace,由于一些未知的原因,它绝对不起作用 $cookie = $_COOKIE['order']; $cookie = str_replace($_POST['rmv'], '', $cookie); if(preg_match('"/'.$_POST['rmv'].'/"', $cookie)) echo $cookie; 哪个输出$cookie值。。。因此,它显然不起作用。但是,当我在st

我被困了几个小时,老实说,我不明白为什么。。。我得到了一个
str_replace
,由于一些未知的原因,它绝对不起作用

$cookie = $_COOKIE['order'];
    $cookie =  str_replace($_POST['rmv'], '', $cookie);
if(preg_match('"/'.$_POST['rmv'].'/"', $cookie))
        echo $cookie;
哪个输出
$cookie
值。。。因此,它显然不起作用。但是,当我在
str\u replace
中输入
$\u POST['rmv']
值时。。。它正在工作。。。。例:

$cookie = $_COOKIE['order'];
        $cookie =  str_replace('some very long value here', '', $cookie);
    if(preg_match('/some very long value here/', $cookie))
            echo $cookie;
在这里,代码正在工作。。。这怎么可能

比如说,
$\u POST['rmv']='dsafsdfsdffdss……'
首先我做
$cookie=str\u replace($\u POST['rmv'],''$cookie)


逻辑是,如果在$cookie中找到$u POST['rmv'],它将被删除,否则preg\u匹配将返回false。。。奇怪的是,当我对它运行preg_match时,它返回true,就像它在$cookie中找到了$_POST['rmv'],但它没有删除它。

不要在你的
preg_match()
调用中混淆单引号和双引号。好吧,当我用像'eee'这样的短字符串更改$_POST['rmv']值时,第一个代码如果(preg_match('/'.$ee')“,$cookie”),其中$ee='eee'检查
$\u POST['rmv']
的值。另外,在第一个代码块中,从
preg_match
中删除双引号。我检查了值,所做的是回显$\u POST['rmv'],然后将原始值放入str_replace(复制/粘贴)中,由于未知的原因,正在工作。因为我做了一个$cookie=str_replace($\u POST['rmv'],'''$cookie),但是当我运行一个preg_匹配时,$\u POST['rmv']从$cookie中返回true…
preg_匹配('/'.preg_quote($\u POST['rmv'],'/'))/'))