php - 在 php 中使用正则表达式将 url 转换为域

标签 php regex

我有一个 $urls 数组,其中包含一些图片或其他任何内容的 url:

$urls = array("http://shop.google.com/pic/android2014-1.jpg",
"http://shop.about.com/pic/buy2.gif",
"http://shop.ebay.com/pic/android2014-2.jpg",
"http://shop.somesite.com/pic/android2014-3.jpg",
"http://shop.wordpress.com/pic/android2014-6.jpg",
"http://shop.test.com/pic/android2014-4.jpg");

我需要我的输出是这样的:

$domains = array("shop.google.com",
"shop.about.com",
"shop.ebay.com",
"shop.somesite.com",
"shop.wordpress.com",
"shop.test.com");

我找到了类似 this example 的解决方案.它运行良好,但我想在我的 foreach 循环中使用正则表达式。我想我应该使用 preg_math 并且我阅读了 php.net 文档,但我不知道如何使用 regular expression

最佳答案

$domains=array();
foreach($urls as $url){
    $domain = parse_url($url, PHP_URL_HOST);
    array_push($domains,$domain);
}

您可以简单地print_r($domains); 来打印域名。


使用正则表达式

preg_match("/^(http:\/\/)?([^\/]+)/i", $url, $matches);
$domain = $matches[2];

关于php - 在 php 中使用正则表达式将 url 转换为域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21964687/

相关文章:

php - 在 laravel 5.4 更新自动 Created_at 和 Updated_at 列

javascript - 用 "and"替换字符串中的最后一个逗号

regex - Sublime Text 3语法定义: how to capture a multiline C-style block comment?

php: oop 问题。可能非常基本

php - 无法设置 PHP $_SESSION 变量

PHP:将 MD5 哈希应用升级为 bycript。这安全吗?

php - 使用 jquery 和 ajax 淡入 mysql 数据 1 by 1

javascript - 带星号的负前瞻如何工作?

python - 将正则表达式应用于 Pandas 数据框

java - 模式和匹配器java问题