У меня есть несколько файлов CDN Rackspace Cloud Files, которые ссылаются на HTTP-адрес, и я хотел бы преобразовать их в эквивалент HTTPS.Преобразование Rackspace в облачные файлы. URL-адреса CDN от HTTP до HTTPS.
Rackspace Cloud Files CDN URL-адрес в следующем формате:
http://c186397.r97.cf1.rackcdn.com/CloudFiles Akamai.pdf
И SSL эквивалент этого URL будет:
https://c186397.ssl.cf1.rackcdn.com/CloudFiles Akamai.pdf
Изменение URL-адрес (source):
- HTTP становится HTTPS
- Второй сегмент URI («R97» в данном примере) становится «SSL»
«R00» часть, кажется, имеют разную длину (а некоторые из них «r6» и т. д.), поэтому мне сложно преобразовать эти URL-адреса в HTTPS. Вот код, который у меня есть до сих пор:
function rackspace_cloud_http_to_https($url)
{
//Replace the HTTP part with HTTPS
$url = str_replace("http", "https", $url, $count = 1);
//Get the position of the .r00 segment
$pos = strpos($url, '.r');
if ($pos === FALSE)
{
//Not present in the URL
return FALSE;
}
//Get the .r00 part to replace
$replace = substr($url, $pos, 4);
//Replace it with .ssl
$url = str_replace($replace, ".ssl", $url, $count = 1);
return $url;
}
Это, однако, не работает для URL-адресов, где второй сегмент имеет разную длину.
Любые мысли оценили.
Только что испытал это и он работает с различными частями длины. Спасибо. –
Cheers, могут быть некоторые синтаксические ошибки, так как я написал это с головы, но рад, что он работает! – jessica