У меня хранится ряд URL-адресов CDN Rackspace Cloud Files, которые ссылаются на HTTP-адрес, и я хотел бы преобразовать их в эквивалент HTTPS.
URL-адреса CDN Rackspace Cloud Files имеют следующий формат:
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, где второй сегмент имеет другую длину.
Любые мысли приветствуются.