更简单的方法来完全解码这个字符串?

时间:2012-06-04 01:55:06

标签: php decode urldecode

而不是这样做

urldecode(urldecode(urldecode(curl_exec($ch))));

curl_exec的输出被编码不止一次,有没有一种方法可以完全解码它,只需要调用一个函数?

我刚刚编写了这个函数,它完美地运行了

function decodeSource($encodedSource){
    while($encodedSource != urldecode($encodedSource)){
        $encodedSource = urldecode($encodedSource);
    }
return $encodedSource;
}

1 个答案:

答案 0 :(得分:1)

使用自己的功能怎么样?

function multiurldecode($url, $count=1) {
  for($i=1; $i<=$count; $i++)
    $url=urldecode($url);
  return($url);
}

这是我的头脑,没有经过考验......

每条评论

更新

一点都不错!这是代码。

function multiurldecode($url, $count=1) {
  if ($count==0) {
    for( $last=urldecode($url); $last!=$url; $url=urldecode($url) )
      $last=$url;
  } else {
    for ($i=1; $i<=$count; $i++)
      $url=urldecode($url);
  }
  return($url);
}

同样,我没有对此进行测试,但它在我脑海中运行良好。 :)这里的想法是,如果你提供一个零的计数,for循环将继续运行,直到解码的URL与其源相同。