function BuildPostData($dicPostData, $dicFiles, &$contentType) { $isMultipart = is_array($dicFiles) && count($dicFiles) > 0; $result = ""; // ** Multipart post if ($isMultipart) { $boundary = "----CrankyAdsBrowserBoundary2a84c2ab17e842b590ca5a0e43e756fa"; $contentType = "multipart/form-data; boundary=" . $boundary; // Write post data (in multipart format) if (is_array($dicPostData)) { foreach ($dicPostData as $key => $value) { if ($this->bPostDataConvertUnderscoreToPeriod) { $key = str_replace("_", ".", $key); } $result .= CrankyAdsHelper::BuildFormDataMultipart($key, $value, $boundary); } } // Write files (in multipart format) if (is_array($dicFiles)) { foreach ($dicFiles as $key => $value) { if ($this->bPostDataConvertUnderscoreToPeriod) { $key = str_replace("_", ".", $key); } if ($value["name"] != null) { $result .= "--" . $boundary . "\r\n"; $result .= "Content-Disposition: form-data; name=\"" . $key . "\"; filename=\"" . $value["name"] . "\"\r\n"; $result .= "Content-Type: " . $value["type"]; $result .= "\r\n\r\n"; $fileContent = file_get_contents($value["tmp_name"]); $result .= $fileContent; $result .= "\r\n"; } } } // Terminator $result .= "--" . $boundary . "--\r\n"; } else { $contentType = "application/x-www-form-urlencoded"; foreach ($dicPostData as $key => $value) { if ($this->bPostDataConvertUnderscoreToPeriod) { $key = str_replace("_", ".", $key); } if (strlen($result) > 0) { $result .= "&"; } $result .= CrankyAdsHelper::BuildFormDataUrlEncoded($key, $value); } } return $result; }
static function BuildFormDataMultipart($key, $value, $boundary) { $result = ""; // ** Array $value if (is_array($value)) { // * Create and Encode a composite key for each array value foreach ($value as $valueKey => $valueValue) { // Create the composite key $compositeKey = $key; if (preg_match("/^\\d+\$/i", $valueKey)) { // int Array Key $compositeKey .= "[{$valueKey}]"; } else { // string Array Key $compositeKey .= ".{$valueKey}"; } // Encode this Value $result .= CrankyAdsHelper::BuildFormDataMultipart($compositeKey, $valueValue, $boundary); } } else { $result .= "--" . $boundary . "\r\n"; $result .= "Content-Disposition: form-data; name=\"" . $key . "\""; $result .= "\r\n\r\n"; $result .= $value; $result .= "\r\n"; } return $result; }