PHP - str_replace无法按预期工作

时间:2012-03-09 12:00:10

标签: php drupal-6 str-replace

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

www.google.co.uk%3Fq%3Dde

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

  $path = str_replace('%3F', '?', $path); 
  $path = str_replace ('%3D', '=', $path);

然后我打印输出,但仍然打印“%3F ”和“%3D ”。当我使用这两个str_replace

时,这确实有效
  $path = str_replace('%3F', '?'); 
  $path = str_replace ('%3D', '=');

但是当我使用这些时,drupal 6会引发错误。

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

4 个答案:

答案 0 :(得分:8)

请勿使用str_replace()。请改用urldecode(),因为这是其设计目的。

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

如果没有看到其他代码,很难说出前两个str_replace()调用失败的原因。它们是正确形成的。

答案 1 :(得分:3)

使用:

$path = urldecode($url);

http://php.net/manual/en/function.urldecode.php

答案 2 :(得分:0)

应该是:你在最后两行的str_replace中缺少$ path:


$path = "www.google.co.uk%3Fq%3Dde";
$path = str_replace('%3F', '?', $path); 
$path = str_replace ('%3D', '=', $path);

答案 3 :(得分:0)

使用PHP的urldecode函数。

    $url = "www.google.co.uk%3Fq%3Dde";
    $path = urldecode($url);