Example #1
0
 /**
  * 
  * @return string
  */
 private function buildQueryStringFromPairs()
 {
     foreach ($this->pairs as $key => $value) {
         if (is_null($value)) {
             $this->pairs[$key] = $this->getNullValuePlaceholder();
         }
     }
     $baseEncodedQuery = str_replace('=' . $this->getNullValuePlaceholder(), '', http_build_query($this->pairs));
     if ($this->hasConfiguration() && !$this->configuration->getFullyEncodeQueryStringKeys()) {
         $keyValuePairs = explode(self::PAIR_DELIMITER, $baseEncodedQuery);
         foreach ($keyValuePairs as $keyValuePairIndex => $keyValuePair) {
             $keyAndValue = explode(self::KEY_VALUE_DELIMITER, $keyValuePair);
             $keyAndValue[0] = str_replace(array_keys($this->verySpecialCharacters), array_values($this->verySpecialCharacters), rawurldecode($keyAndValue[0]));
             //$keyAndValue[0] = str_replace(array_keys($this->verySpecialCharacters), array_values($this->verySpecialCharacters), rawurldecode($keyAndValue[0]));
             $keyValuePairs[$keyValuePairIndex] = implode('=', $keyAndValue);
         }
         $baseEncodedQuery = implode(self::PAIR_DELIMITER, $keyValuePairs);
     }
     return $baseEncodedQuery;
 }