PHP - str_replace无法按预期工作

Und*_*ned 1 php drupal-6 str-replace

我有一个名为path的变量,例如url

www.google.co.uk%3Fq%3Dde
Run Code Online (Sandbox Code Playgroud)

我正在通过2 str_replace运行正确格式化.

  $path = str_replace('%3F', '?', $path); 
  $path = str_replace ('%3D', '=', $path);
Run Code Online (Sandbox Code Playgroud)

然后我打印输出,但仍然打印" %3F "和" %3D ".当我使用这两个str_replace时,这确实有效

  $path = str_replace('%3F', '?'); 
  $path = str_replace ('%3D', '=');
Run Code Online (Sandbox Code Playgroud)

但是当我使用这些时,drupal 6会抛出错误.

我对php很新,所以它可能是我想念的简单东西

Mic*_*ski 8

不要str_replace()用于此.请urldecode()改用,因为这是它的设计目的.

echo urldecode("www.google.co.uk%3Fq%3Dde");
// www.google.co.uk?q=de
Run Code Online (Sandbox Code Playgroud)

在没有看到其余代码的情况下,很难说出为什么前两个str_replace()调用失败了.它们是正确形成的.