我存储了一系列 Rackspace 云文件 CDN URL,它们引用了一个 HTTP 地址,我想将它们转换为 HTTPS 等价物。
Rackspace 云文件 CDN URL 采用以下格式:
http://c186397.r97.cf1.rackcdn.com/CloudFiles Akamai.pdf
此 URL 的 SSL 等效项是:
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。
任何想法表示赞赏。