php - 如何获取没有模式且以 php 结尾的 URL 主机?

标签 php arrays url explode

想爆出url获取主机

$link = str_replace("www.", "", $_POST['link']);
$part1 = explode("//", $link);
$part2 = explode(".", $part1[1]);
$host = $part2[0];

所以如果 $_POST['link'] 是例如

https://www.youtube.com/watch?v=udm5jUA-2bs 

我只想获取 youtube。 在第一种方式中,我得到了 explode() expects parameter 2 to be string, array given"错误消息。

用这个方法:

$host = var_dump(parse_url($_POST['link'], PHP_URL_HOST));

我得到了 www.youtube.com 但我只想要 youtube

最佳答案

  • 使用 parse_url() 提取 url 域以 PHP_URL_HOST 模式运行。
  • 我们将使用 explode()函数使用 . 作为分隔符将其分成几部分。
  • 现在,URL 可以有两种类型,youtube.com,或 www.youtube.com,或 %.youtube.com
  • 我们计算零件,如果它们是两个,我们使用第一个值,否则使用第二个值。

演示:https://3v4l.org/KlErW

$url_host_parts = explode('.', parse_url($_POST['link'], PHP_URL_HOST));
$host = (count($url_host_parts) == 2) ? $url_host_parts[0] : $url_host_parts[1];

关于php - 如何获取没有模式且以 php 结尾的 URL 主机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53248820/

相关文章:

php - mysql 查询执行成功但行没有变化

java - 小心 : Splitting a string by newlines can cause bothering bugs

java - 将 2 个电源合并为一个程序

java - 使用方法打印特定的数组对象

python - 绝对路径没有前导斜杠时的 urljoin

java - java代码中的多个url连接

php - 数据库中三个不同表之间的计算?

php - magento 以编程方式设置商店 ID

javascript - 无法从文本框中的下拉列表中获取名称

java - 如何匹配URL中的单词(字符串)