检查 URL 方案是 HTTP 还是 HTTPS

发布于 2024-12-03 18:37:40 字数 203 浏览 1 评论 0原文

我使用以下代码将 http:// 添加到 URL。

(substr(strtolower($url), 0, 7) == 'http://'?"":"http://").$url

但如何检查原始 URL 是否包含 https 呢?我不想使用 OR 子句。

I'm using the following code to add http:// to the URL.

(substr(strtolower($url), 0, 7) == 'http://'?"":"http://").$url

but how can I check whether the original URL contains https? I don't want to use an OR clause.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

醉南桥 2024-12-10 18:37:40
preg_match("@^https?://@", $url)
preg_match("@^https?://@", $url)
心舞飞扬 2024-12-10 18:37:40

答案

echo parse_url($url, PHP_URL_SCHEME);

参考

文档 https://www.php.net/manual/en/function.parse-url.php

parse_url(string $url, int $component = -1): 混合

parse_url函数解析 URL 并返回一个关联数组,其中包含 URL 中存在的各个组件。数组元素的值未经过 URL 解码。

此函数并不是为了验证给定的 URL,它只是将其分解为上面列出的部分。部分 URL 和无效 URL 也被接受,parse_url() 会尽力正确解析它们。

Answer

echo parse_url($url, PHP_URL_SCHEME);

Reference

docs https://www.php.net/manual/en/function.parse-url.php

parse_url(string $url, int $component = -1): mixed

parse_url function parses a URL and returns an associative array containing any of the various components of the URL that are present. The values of the array elements are not URL decoded.

This function is not meant to validate the given URL, it only breaks it up into the above listed parts. Partial and invalid URLs are also accepted, parse_url() tries its best to parse them correctly.

乙白 2024-12-10 18:37:40

在您的网址上使用 preg_match 和正则表达式:

preg_match(^http(s)?://);

如果返回 true,那么你的URL就可以了,无论是使用http还是https。

Use preg_match and a regular expression on your url :

preg_match(^http(s)?://);

If it returns true, then your URL is ok, whether it uses http of https.

赤濁 2024-12-10 18:37:40
strncmp($url, 'https:', 6) === 0
strncmp($url, 'https:', 6) === 0
秋心╮凉 2024-12-10 18:37:40
!empty($_SERVER['HTTPS']) ? 'https' : 'http'
!empty($_SERVER['HTTPS']) ? 'https' : 'http'
多彩岁月 2024-12-10 18:37:40

我认为最好的方法是使用 parse_url() 函数。
像这样 :

if (empty($url['scheme'])) {
   $url = 'https://' . $url;
} 

I think the best way is to use parse_url() function.
Like this :

if (empty($url['scheme'])) {
   $url = 'https://' . $url;
} 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文